panic
?尽量少用panic
?特点
-
停止当前函数执行
-
一直向上返回,执行每一层的defer
-
如果没有遇到recover,程序退出
?关于recover- 仅在defer调用中使用
- 获取panic的值
- 如果无法处理,可重新panic
func tryRecover() {defer func() {r := recover()if err, ok := r.(error); ok {fmt.Println("Error occurred:", err)} else {panic(r)}}()//panic(errors.New("this is a error"))b := 0a := 5 / bfmt.Println(a)
}func main() {tryRecover()
}