1. recover() 用于将 panic 的信息捕捉。
  2. recover 必须定义在 panic 之前的 defer 语句中。
  3. 在这种情况下,当 panic 被触发时,该 goroutine 不会简单的终止,而是会执行在它之前定义的 defer 语句。
  4. 不再执行 panic 之后的语句

总之

使用时 recover 和 defer 搭配,就是三件套 panic->defer->recover

  1. 函数嵌套后,defer 嵌套后就不管用
  2. recover 必须放在 defer 中,否则只返回 nil

工作中没实际用过,有空补充点例子,否则过段时间自己都看不懂了~

todo