Don’t panic. Photo by Andrei Panfiloiu on Unsplash

Go语言基础 — panic, recover

Golang Basic — panic, recover

--

panic

  • 停止当前函数执行
  • 一直向上返回,执行每一层的defer
  • 如果没有遇见recover,程序退出

recover

  • 仅在defer中调用
  • 获取panic的值
  • 如果无法处理,可以重新panic

系统的panic也可以捕捉到。

但是panic()的参数是interface{},可以传入任何值,而recover()的返回值也是interface{},所以recover不知道如何处理的时候需要继续panic处理。

加入传入一个panic(123)

--

--