6.1 panic and recover
思考
一、为什么会中止运行
func main() {
panic("EDDYCJY.")
}$ go run main.go
panic: EDDYCJY.
goroutine 1 [running]:
main.main()
/Users/eddycjy/go/src/github.com/EDDYCJY/awesomeProject/main.go:4 +0x39
exit status 2二、为什么不会中止运行
func main() {
defer func() {
if err := recover(); err != nil {
log.Printf("recover: %v", err)
}
}()
panic("EDDYCJY.")
}三、不设置 defer 行不
四、为什么起个 goroutine 就不行
源码
数据结构

恐慌 panic
无法恢复的恐慌 fatalpanic
恢复 recover
拓展
总结
Last updated