Don’t Panic !
并不,只是在玩梗。
Panic
panic
作为内置函数,可以中断原有控制流程。go没有和java一样的异常抛出机制,而是使用了panic
和recover
机制。需要注意的是,这应当作为最后手段来使用,代码中不应该有或者说极少需要panic
的东西。
当程序调用了panic
,程序的执行被中断,但是defer
的调用会正常执行。
Recover
可以让panic
了的goroutine
恢复过来。recover
仅在defer
的过程中生效,正常情况调用recover会返回nil
。
1 | func panicRecover(f func()) (b bool){ |