golang 全局异常处理
在 Go 语言中,可以通过 defer 和 recover 来实现全局异常处理。具体实现如下:
- 在 main 函数中使用
defer语句注册一个函数,用于捕获 panic 异常:
func main() {
defer func() {
if err := recover(); err != nil {
log.Println("panic occurred:", err)
}
}()
// your code here
}
- 在需要捕获异常的函数中使用
panic抛出异常:
func myFunction() {
defer func() {
if err := recover(); err != nil {
log.Println("panic occurred:", err)
}
}()
// your code here
if somethingWrong {
panic("something went wrong")
}
}
这样,当 myFunction 函数中发生异常时,就会被捕获并打印日志。注意,recover 函数只有在 defer 中调用才会生效
原文地址: https://www.cveoy.top/t/topic/dfSO 著作权归作者所有。请勿转载和采集!