【发布时间】:2015-06-13 14:46:04
【问题描述】:
为什么调用 defer func() { recover() }() 可以成功恢复恐慌的 goroutine,但调用 defer recover() 却不能?
作为一个简约的例子,这段代码不会恐慌
package main
func main() {
defer func() { recover() }()
panic("panic")
}
但是,直接用recover替换匿名函数会发生恐慌
package main
func main() {
defer recover()
panic("panic")
}
【问题讨论】:
标签: go deferred-execution