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

惠州市企业网站seo点击软件文案代写在哪里接单子

惠州市企业网站seo点击软件,文案代写在哪里接单子,广告设计公司营业执照,管理咨询公司经营范围有哪些recover 使用panic抛出异常后, 将立即停止当前函数的执行并运行所有被defer的函数#xff0c;然后将panic抛向上一层#xff0c;直至程序crash。但是也可以使用被defer的recover函数来捕获异常阻止程序的崩溃#xff0c;recover只有被defer后才是有意义的。 func main() { p… recover 使用panic抛出异常后, 将立即停止当前函数的执行并运行所有被defer的函数然后将panic抛向上一层直至程序crash。但是也可以使用被defer的recover函数来捕获异常阻止程序的崩溃recover只有被defer后才是有意义的。 func main() { print(123) print(456) panic(throw an error) print(678) //IDE会有提示: Unreachable code} 结果: 123456panic: throw an errorgoroutine 1 [running]:main.main()    /Users/shuangcui/explore/panicandrecover.go:31 0x67 使用recover()捕获异常: func main() { print(123) defer func() {  if err : recover(); err ! nil {   print(recover it)  } }() print(456) panic(throw an error) print(678) //IDE会有提示: Unreachable code} 结果为: 123456recover it 如果有两个recover,则捕获异常的是后一个 func main() { print(123) defer func() {  if err : recover(); err ! nil {   print(recover it)  } }() defer func() {  if err : recover(); err ! nil {   print(复原!)  } }() print(456) panic(throw an error) print(678) //IDE会有提示: Unreachable code} 结果为: 123456复原! panic之后的任何代码都不会继续执行 前提是panic不在if里面 package mainimport fmtfunc main() { defer_call() fmt.Println(333 Helloworld)}func defer_call() { defer func() {  fmt.Println(11111) }() defer func() {  fmt.Println(22222) }() defer func() {  if r : recover(); r ! nil {   fmt.Println(Recover from r : , r)  } }() defer func() {  fmt.Println(33333) }() fmt.Println(111 Helloworld) panic(Panic 1!)    //使用panic抛出异常后, 将立即停止当前函数的执行并运行所有被defer的函数然后将panic抛向上一层, 直至程序crash    //但是也可以使用被defer的recover函数来捕获异常阻止程序的崩溃recover只有被defer后才是有意义的。 panic(Panic 2!) //panic1之后的panic2没有任何机会会被执行, panic2之后的任何代码更没有任何机会被执行 fmt.Println(222 Helloworld)} 输出为: 111 Helloworld33333Recover from r :  Panic 1!2222211111333 Helloworld 对于goroutine中的panic,协程外面的recover是无法恢复的goroutine中的recover,同样无法恢复协程外的panic 但协程中的recover可以恢复协程中的panic package mainimport ( fmt time)func main() { go func() {  defer func() {   if err : recover(); err ! nil {    fmt.Println(recover err:, err)   }  }()  panic(里面出错了) }() //panic(外面出错了) time.Sleep(1 * time.Second)} 输出为 recover err 里面出错了 主方法中的recover,也可以恢复子方法里的panic 但如果go subfunc(),则同样无法捕获subfunc中的异常 func main() { fmt.Println(123) defer fmt.Println(999) defer func() {  if err : recover(); err ! nil {   fmt.Println(恢复异常:,err)  } }() subfunc()}func subfunc() { defer fmt.Println(888) panic(出现了bug) defer fmt.Println(456)} 结果为: 123888恢复异常: 出现了bug999 因为panic发生的时候panic函数后面的语句都不会执行了所以recover函数不能放在panic语句后面执行而要放在defer函数中执行。 使用 panic 抛出异常后函数执行将从调用 panic 的地方停止如果函数内有 defer 调用则执行 defer 后边的函数调用如果 defer 调用的函数中没有捕获异常信息这个异常会沿着函数调用栈往上传递直到 main 函数仍然没有捕获异常将会导致程序异常退出 如何区别使用 panic 和 error 两种方式 惯例是导致关键流程出现不可修复性错误的使用 panic 其他使用 error 。 panic 和 recover 的组合有如下特性 有 panic 没 recover 程序宕机。 有 panic 也有 recover 程序不会宕机执行完对应的 defer 后从宕机点退出当前函数后继续执行。 recover能捕获所有错误吗 不能 Go 有哪些无法恢复的致命场景 像 并发读写 map fatal error: concurrent map read and map write 堆栈内存耗尽(如递归) runtime: goroutine stack exceeds 1000000000-byte limitruntime: sp0xc0200e1bf0 stack[0xc0200e0000, 0xc0400e0000]fatal error: stack overflow 将 nil 函数作为 goroutine 启动 fatal error: go of nil func value goroutines 死锁 fatal error: all goroutines are asleep - deadlock! 线程超过设置的最大限制 fatal error: thread exhaustion 超出可用内存 fatal error: runtime: out of memory 总之 都会报fatal error:xxxxxxxx 拓展参考: golang panic和recover 实现原理[1] Go 学习笔记19— 函数05[如何触发 panic、触发 panic 延迟执行、panic 和 recover 的关系][2] Go 语言踩坑记——panic 与 recover[3] 参考资料 [1] golang panic和recover 实现原理: https://blog.csdn.net/u010853261/article/details/102761955 [2] Go 学习笔记19— 函数05[如何触发 panic、触发 panic 延迟执行、panic 和 recover 的关系]: https://blog.csdn.net/wohu1104/article/details/105571916 [3] Go 语言踩坑记——panic 与 recover: https://xiaomi-info.github.io/2020/01/20/go-trample-panic-recover/ 本文由 mdnice 多平台发布
http://www.tj-hxxt.cn/news/130598.html

相关文章:

  • 太原cms模板建站wordpress音乐页面下载
  • 专业网站建设品牌策划施工企业资质序列
  • 网站监测浏览器类型推广产品的方式有哪些
  • 人流医院网站建设信息科技公司网站
  • 推广网站的方法有网站开发公司气氛
  • 浙江网站备案查询巩义便宜网站建设价格
  • 网站上线后想修改wordpress 中的函数
  • 网站推广活动开发一款软件要多少钱
  • 阿里云怎样做公司网站哪个视频网站做自媒体
  • 可以下载的网站模板吗环保部建设项目影响登记网站
  • 微信营销软件网站建设知乎,闲鱼网站建设和网站运营
  • 网站开发总结性报告网络推广公司利润如何
  • 太原在线网站建设石家庄住房和城乡建设厅官方网站
  • 软件公司门户网站模板wordpress修改登陆地址
  • 好三网网站wordpress用户管理插件
  • 美食网站建设策划报告福州台江区网站建设
  • vps服务器中的网站不显示图片网站做多久
  • 建设部政务网站建设做外贸网站公司哪家好
  • 合肥建站网站平台做网站哪里接单
  • 网站文章内容页keyword设置实体店面做网站推广要多少钱
  • 建设和同城类似的网站h5视频怎么制作教学
  • 商务网站建设规划流程网站开发ceil(5.5)
  • 如何诚信网站平台建设wordpress编辑文字内容
  • 青岛个人接网站建设公司起名用字大全
  • 亳州做企业网站沈阳市和平区建设局网站
  • 广州网站建设中心wordpress设置固定链接打不开
  • 招生网站开发的背景高青县住房和城乡建设局网站
  • APP网站怎么做环保网页设计
  • flash怎么做网站敦化网站开发
  • 泸州网站seowordpress给幻灯片添加图片