go defer panic recover - Go语言中文社区

go defer panic recover


golang没有try...catch...的异常处理结构,而是使用defer、panic、recover来进行异常处理。

1、defer,从字面上就是延迟、延期,就是将defer后面的方法延迟到包裹该方法的方法执行返回再执行。

  

  

  从上面一段代码可以看出defer有以下特性:

  1)defer将方法压入栈中,并最后执行

  2)多个defer时,遵从后进先出的原则

  3)defer是将顺序运行到该方法时的状态延迟,效果可以看i值的变化

  4)defer的压栈和出栈存在性能损耗,避免将defer写在for循环内部

2、panic,系统无法处理的严重错误。

  

  

  当程序运行报错的时候,我们可以看到提示上会出现panic的标识。当然我们也可以显示的使用panic函数,但当我们显示使用时,其后面的代码将不运行。

   

3、recover()用来捕获异常,相当与catch,但recover必须再defer方法内才能生效。

   

  

版权声明:本文来源博客园,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.cnblogs.com/az4215/p/13444578.html
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-15 23:54:49
  • 阅读 ( 1219 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢