Golang panic
在Go语言中,panic就像异常一样,它也是在运行时出现的。或者换句话说,恐慌是指在你的Go程序中出现了一个意外情况,由于这个原因,你的程序执行被终止了。如例1所示,有时恐慌是在运行时发生的,如越界数组访问等,有时是程序员故意抛出的,以处理Go程序中最坏的情况,如例2所示。
恐慌函数是一个内置的函数,定义在Go语言的内置包中。这个函数终止了控制流并开始恐慌。
语法
它可以接收任何类型的参数。当围棋程序发生慌乱时,程序会在运行时终止,并在输出屏幕上显示错误信息以及直到发生慌乱时的堆栈跟踪。一般来说,在Go语言中,当程序发生慌乱时,程序不会立即终止,而是在Go完成该程序的所有待定工作后终止。
例如 ,假设一个函数A调用了慌乱,那么函数A的执行就会停止,如果A中有任何延迟的函数,那么它们就会正常执行,然后函数A返回给它的调用者,对调用者来说,A的行为就像调用了慌乱。这个过程一直持续到当前goroutine中的所有函数被返回,之后程序崩溃,如例3所示。
例1 :
输出
例2 :
输出
例3 :
输出
注意: 推迟语句或函数总是运行,即使程序恐慌。
Panic的用法
- 你可以在程序无法继续执行的不可恢复的错误中使用panic。
- 如果你想在程序中的某个特定条件下出现错误,也可以使用panic。