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 := 0
a := 5 / b
fmt.Println(a)
}
func main() {
tryRecover()
}