Go语言中从panic中恢复调用recover函数示例
在一个 defer 延迟执行的函数中调用 recover() ,它便能捕捉 / 中断 panic
// 错误的 recover 调用示例
func main() {
recover() // 什么都不会捕捉
panic("not good") // 发生 panic,主程序退出
recover() // 不会被执行
println("ok")
}
// 正确的 recover 调用示例
func main() {
defer func() {
fmt.Println("recovered: ", recover())
}()
panic("not good")
}
总结:
从上边可以看出,recover() 仅在 defer 执行的函数中调用才会生效。
更多go语言的注意点,请收藏本站网址:https://www.zongscan.com/
相关文章