当前位置: 代码迷 >> 综合 >> Golang panic
  详细解决方案

Golang panic

热度:31   发布时间:2023-11-27 10:33:26.0

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()
}