如何从 panic 中恢复?

提问者:帅平 问题分类:面试刷题
如何从 panic 中恢复?
1 个回答
原来无话可说
原来无话可说
在一个 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")
}
发布于:5个月前 (11-29) IP属地:四川省
我来回答