golang recover() 显示错误的位置
在 Golang 中,recover() 函数可以用于捕捉 panic 异常,并返回异常对象。但是它不能直接显示错误的位置。如果要显示错误的位置,可以使用 debug 包中的 PrintStack() 函数。具体实现如下:
import (
"fmt"
"runtime/debug"
)
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered in main", r)
debug.PrintStack()
}
}()
panic("Oops! Something went wrong!")
}
在上面的代码中,我们使用了 defer 关键字来延迟执行 recover() 函数。如果在执行过程中发生了 panic 异常,recover() 函数会捕捉到该异常并返回错误对象。然后我们通过判断 recover() 函数的返回值是否为 nil 来判断是否发生了异常。
如果发生了异常,我们使用 fmt 包中的 Println() 函数来输出错误信息。然后使用 debug 包中的 PrintStack() 函数来输出错误发生的位置。这样就可以方便地定位错误发生的位置了。
原文地址: https://www.cveoy.top/t/topic/qOU 著作权归作者所有。请勿转载和采集!