[记录]踩了golang的defer/recover的坑

今天写代码的时候完了个花活,想复用recover,结果炸了……

体现在recover没起效,直接panic出来了。

查了下,defer里一旦再调用函数,原有上下文就变了,recover就失效了。

想想也有道理。

改了个骚气代码,解决了

q.Recover = func() {
defer n.Recover()
if r := recover(); r != nil {
panic(r)
}
}
发布于
2021-01-19
点击登录