Go语言中从panic中恢复调用recover函数示例

2023-06-01 00:00:00 函数 示例 调用

在一个 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/


相关文章