在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
package main import ( "fmt" "log" ) func de() { //recover() //可以打印panic的错误信息 //fmt.Println(recover()) if err := recover(); err != nil { //产生了panic异常 fmt.Println(err) } } func test() { defer de() log.Panic("aaaaaaaaaaaaaaaaaaaaa") log.Panic("bbbbbbbbbbbbbbbbbbbbb") } func main() { test() fmt.Println("-------------- main over -------------------------") } 2020/08/10 11:13:30 aaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa -------------- main over ------------------------- 注意 第二次panic没有被执行,第一次程序异常后,就转到了defer方法 recover方法必须放在defer方法中使用,并且只能捕获defer所在外层方法的第一个painc,然后跳出该外层方法,继续程序执行
|
请发表评论