golang recover 如何显示出错误的具体位置
在golang中,recover函数可以用于捕获panic异常,但是无法直接显示出错误的具体位置。如果需要查看具体位置,可以结合debug包中的trace函数使用。
例如:
package main
import (
"fmt"
"runtime/debug"
)
func main() {
defer func() {
if err := recover(); err != nil {
fmt.Println("panic:", err)
debug.PrintStack() // 打印堆栈信息
}
}()
test()
}
func test() {
panic("test panic")
}
在上面的例子中,当test函数触发panic异常时,会被defer中的函数捕获,并将错误信息和堆栈信息打印出来。通过堆栈信息,可以看到错误发生的具体位置。
原文地址: https://www.cveoy.top/t/topic/uO7 著作权归作者所有。请勿转载和采集!