网站地图    收藏    合作   

主页 > 采坑 > 服务端采坑 > goLang采坑 >

golang中recover必须在defer函数中运行

来源:未知    时间:2021-05-03 17:43 作者:小飞侠 阅读:

[导读] recover捕获的是祖父级调用时的异常, 直接调用时无效: funcmain(){recover()panic(1)} 直接defer调用也是无效: funcmain(){deferrecover()panic(1)} defer调用时多层嵌套依然无效: funcmain(){deferfunc(){func(){rec...

recover捕获的是祖父级调用时的异常, 直接调用时无效:

func main() {  
    recover()
    panic(1)}

直接defer调用也是无效:

func main() {  
    defer recover()
    panic(1)}

defer调用时多层嵌套依然无效:

func main() {  
    defer func() {
        func() { recover() }()
    }()
    panic(1)}

必须在defer函数中直接调用才有效:

func main() {  
    defer func() {
        recover()
    }()
    panic(1)}


自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论