go recover()没有效果,为什么

jinjiashan · · 1462 次点击
厉害了, 这都找到了. 不过说真的, 不知道为什么要这样设计.go语言圣经里面也没有讲到, 只有趟过这个坑才能知道吗.
#2
更多评论
规范有明确规定,recover 必须放在 defer 中,但是不能被 defer 直接调用。 >The return value of recover is nil if any of the following conditions holds: >- panic's argument was nil; >- the goroutine is not panicking; >- recover was not called directly by a deferred function. http://docs.studygolang.com/ref/spec#Handling_panics
#1