首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    panic 和 recover

    在本教程里,我们还会接着讨论,当程序发生 panic 时,使用 recover 可以重新获得对该程序的控制。...可以认为 panic 和 recover 与其他语言中的 try-catch-finally 语句类似,只不过一般我们很少使用 panic 和 recover。...需要注意的是,你应该尽可能地使用错误,而不是使用 panic 和 recover。只有当程序不能继续运行的时候,才应该使用 panic 和 recover 机制。 panic 有两个合理的用例。...image.png 如果defer中也有panic 那么会依次按照发生panic的顺序执行 ---- recover func recover() interface{} 主要在defer 中才有效,这个一定要记住...image.png panic,recover 和 Go 协程 recover 只能回复同一个协程中的panic package main import ( "fmt" ) func fullName

    72430

    Go语言之panic和recover

    recover是用来截获panic异常信息的,截获了之后,可以控制程序跳过panic的地方继续执行。 本文笔者主要分享下,调用panic之后都做了哪些操作,以及recover使用之后的效果。...2. recover使用介绍 recover是go提供的一个用来截获panic信息,重新获取协程控制的函数。它的使用,有两点需要注意,1)recover只能在defer函数中使用。...结果分析:通过调用recover之后的结果来看,panic被1处的recover成功截获,只是3处到代码没有执行而已,对于调用testPanic的main函数后续代码都被执行了,"main end!"...例子2,panic和recover在不同协程中,不能恢复 ?...结果分析:通过输出结果可以看出,就算我们在4处调用了rcover,但是panic也没有被截获,原因就是panic在子协程中,而recover在主协程中,recover不能跨协程截获panic信息。

    79210

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券