14.12 recover的执行时机 - Go语言中文社区

14.12 recover的执行时机


recover 必须在 defer 函数中运行。recover 捕获的是祖父级调用时的异常,直接调用时无效。

  1. func main() {
  2. recover()
  3. panic(1)
  4. }

直接 defer 调用也是无效。

  1. func main() {
  2. defer recover()
  3. panic(1)
  4. }

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

  1. func main() {
  2. defer func() {
  3. func() { recover() }()
  4. }()
  5. panic(1)
  6. }

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

  1. func main() {
  2. defer func() {
  3. recover()
  4. }()
  5. panic(1)
  6. }
版权声明:本教程内容除了本站原创内容外,还有来源自C语言编程网,博客园,CSDN等技术站点,感谢相关博主原创文章,转载请附上原文出处链接和本声明。
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 阅读 ( 612 )
  • 分类:Go

0 条评论

官方社群

GO教程

猜你喜欢