这个错误是在 recover()
函数中发生的,意味着程序已经 panic 了。在 recover()
中使用 panic(nil)
并不能解决问题,反而会让程序继续 panic,导致崩溃。
如果你想要忽略这个 panic,并继续执行程序,可以将 recover()
放在一个函数中,并用 defer 关键字调用该函数。如下所示:
func handlePanic() {
if err := recover(); err != nil {
util.InfoF("Stack---::%v\n%s\n", err, string(debug.Stack()))
}
}
// 在需要处理 panic 的代码块中
defer handlePanic()
这样,当出现 panic 时,程序不会立即停止执行,而是会进入到 handlePanic 函数中进行处理。