Defer Recover Panic 三剑客
- recover() 用于将 panic 的信息捕捉。
- recover 必须定义在 panic 之前的 defer 语句中。
- 在这种情况下,当 panic 被触发时,该 goroutine 不会简单的终止,而是会执行在它之前定义的 defer 语句。
- 不再执行 panic 之后的语句
总之
使用时 recover 和 defer 搭配,就是三件套 panic->defer->recover
坑
- 函数嵌套后,defer 嵌套后就不管用
- recover 必须放在 defer 中,否则只返回 nil
工作中没实际用过,有空补充点例子,否则过段时间自己都看不懂了~
todo
- 原文作者:战神西红柿
- 原文链接:https://tomatoares.github.io/posts/go/defer-recover-panic/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。