崩溃了恢复
func testa() {
fmt.Println("aaaa")
}
func testb() {
defer func() {
//可以打印错误信息
//recover()
//fmt.Println(recover())
//没有错就不要打印
if err := recover(); err != nil { //产生了panic异常
fmt.Println(err)
}
}()
//显示调用panic函数
panic("this is a panic test")
fmt.Println("bbbb")
}
func testc() {
fmt.Println("cccc")
}
func main() {
testa()
//不会打印
testb()
testc()
}
控制链
func main() {
fmt.Println("Enter function main.")
panic(errors.New("something wrong"))
p := recover()
fmt.Printf("panic: %s\n", p)
fmt.Println("Exit function main.")
}
这个不可以
需要defer结合使用
defer定义在恐慌前面是可以的
func main() {
fmt.Println("Enter function main.")
defer func() {
//可以打印错误信息
//recover()
//fmt.Println(recover())
//没有错就不要打印
if err := recover(); err != nil { //产生了panic异常
fmt.Println(err)
}
}()
panic(errors.New("something wrong"))
fmt.Println("程序退出了")
}