go defer panic recover

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

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

  

  

  从上面一段代码能够看出defer有如下特性:性能

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

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

  3)defer是将顺序运行到该方法时的状态延迟,效果能够看i值的变化for循环

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

二、panic,系统没法处理的严重错误。程序

  

  

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

   

三、recover()用来捕获异常,至关与catch,但recover必须再defer方法内才能生效。im

   

  

相关文章
相关标签/搜索