当前位置: 首页 > news >正文

南充外贸网站建设营销手机系统安装

南充外贸网站建设,营销手机系统安装,江苏省建设厅网站首页,营业推广促销方式有哪些panic() 和 recover() 是 Go 语言中用于处理错误的两个重要函数。panic() 函数用于中止程序并引发panic,而 recover() 函数用于捕获panic并恢复程序的执行。 什么是panic和recover? panic panic() 函数用于中止程序并引发panic。panic() 函数可以接收…

panic() 和 recover() 是 Go 语言中用于处理错误的两个重要函数。panic() 函数用于中止程序并引发panic,而 recover() 函数用于捕获panic并恢复程序的执行。

什么是panic和recover?

panic

  • panic() 函数用于中止程序并引发panic。
  • panic() 函数可以接收一个参数,该参数将作为panic的原因。
  • 当发生panic时,程序将停止执行,并开始寻找最近的recover调用。
  • 如果找不到recover调用,程序将打印panic的原因并退出。

recover

  • recover() 函数用于捕获panic并恢复程序的执行。
  • recover() 函数可以接收一个参数,该参数将存储panic的原因。
  • 如果在发生panic时调用了recover,程序将继续执行,并且panic的原因将被存储在recover的第一个参数中。
func main() {defer func() {err := recover()if err != nil {fmt.Println("panic:", err)}}()panic("hello, panic!")
}

panic 的传播

 panic 函数会向上传播到调用它的 goroutine。如果 panic 函数没有被捕获,则会一直向上传播,直到遇到 defer 语句中调用的 recover() 函数,或者程序退出。

注意事项

跨协程失效

panic 和 recover 不能跨协程使用。这意味着在一个协程中发生的panic只能在同一个协程中通过 recover 捕获。如果在一个协程中发生了panic,而在另一个协程中调用了 recover,那么 recover 将无法捕获panic。参考如下代码:

func main() {defer println("in main")go func() {defer println("in goroutine")panic("")}()time.Sleep(1 * time.Second)
}

失效的崩溃恢复

如果在一个defer函数中发生了panic,那么该defer函数后面的语句将不会被执行。这意味着在defer函数中使用 recover 来捕获panic是无效的。

func main(){defer fmt.Println("main....")defer func() {err := recover()if err != nil {fmt.Println("panic:", err)}}()panic("hello, panic!")
}

嵌套崩溃

嵌套崩溃是指在一个 goroutine 中调用 panic() 函数,然后在 defer 语句中再次调用 panic() 函数。在这种情况下,panic() 函数会从内向外传播,直到程序崩溃。嵌套崩溃可能会导致程序不可用,因此应避免使用。

func multiplePanic() {defer fmt.Println("in defer")defer func() {defer func() {panic("panic 3")}()panic("panic 2")}()panic("panic 1")
}

http://www.yayakq.cn/news/801379/

相关文章:

  • c 网站开发htnl网站建设公司推荐理由
  • 免费网站空间女人只做正品的网站
  • 商城网站具体需求北京建筑总公司
  • 网站空间买多大的做网站公司是干什么的
  • 做效果图的素材网站wordpress置顶失败
  • 网站分几类wordpress 上注册用户
  • 网站开发使用的语言类应用商店下载软件
  • 做照片书网站好dw可以做视频网站么
  • 免费网站建设可信赖个人怎么做购物网站
  • 网站上的搜索怎么做wordpress cdn 阿里云
  • 培训行业seo整站优化查看别人网站的访问量
  • 小米的网站建设的要点免费在线观看电影大全
  • 机械东莞网站建设公司网站做的太难看
  • 网站开发品牌建设工程规划许可证网站
  • 网站建设商业计划书网站建设职业情况
  • 建设银行信用卡网站登录怎么做会员自动售卡网站
  • 怎么样可以做网站凡客家具
  • 网站开发项目架构说明书golang wordpress
  • 可信赖的手机网站设计网站建设平台怎么样
  • 北京建站模板系统北京网站设计公司cg成都柚米科技15
  • 沈阳建站程序门户网站的含义
  • 龙岗网站注册怎么用dw网站怎么建设
  • 银行网站开发技术方案下载 asp 网站源码
  • 网站建设有什么意义wordpress huxiu
  • 四川林峰脉建设工程有限公司网站网站建设协议书
  • 上饶网站建设企业无锡 网站开发
  • 网站设计例子滁州做网站优化
  • 保定网站推广费用自己做网站怎么跳过备案
  • 网站建设基本流程价格视频网站开发技术书
  • 营销网站做推广山东平台网站建设方案