Golang中的异常处理

Golang的异常处理和单元测试

  • 1.Golang语言中没有其他语言中的try...catch...语句来捕获异常和异常恢复
  • 2.在Golang中我们通常会使用panic关键字来抛出异常,在defer中使用recover来捕获异常进行具体逻辑处理
  • 3.Golang中我们通常会在函数或方法中返回error结构对象来判断是否有异常出现

注意事项

  • 1.利用recoverpanic指令,defer必须放在panic之前定义(panic会终止其后要执行的代码).
  • 2.recover只有在defer调用的函数中才有效,否则recover无法捕获到panic.
  • 3.recover处理异常后,业务逻辑会跑到defer之后的处理片段中
  • 4.多个defer会形成defer栈
  • 5.panic会等到整个goroutine退出才会报告错误