import "fmt"
func main() {
defer func(){recover()}() //这个有效果, 为什么
//defer recover() //这个没有效果
fmt.Println("before")
panic("throw")
fmt.Println("after")
}
有疑问加站长微信联系(非本文作者)

import "fmt"
func main() {
defer func(){recover()}() //这个有效果, 为什么
//defer recover() //这个没有效果
fmt.Println("before")
panic("throw")
fmt.Println("after")
}
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
规范有明确规定,recover 必须放在 defer 中,但是不能被 defer 直接调用。
http://docs.studygolang.com/ref/spec#Handling_panics
厉害了, 这都找到了. 不过说真的, 不知道为什么要这样设计.go语言圣经里面也没有讲到, 只有趟过这个坑才能知道吗.