使用 defer 和 recover 函数来捕获 panic,并在处理完成后继续执行程序。示例代码如下:
func main() {
// 捕获任何 panic
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered from panic:", r)
}
}()
// 调用可能会引发 panic 的函数
callMaybePanic()
// 如果 panic 被恢复,则程序将继续执行
doSomethingAfterPossiblePanic()
}
func callMaybePanic() {
// 可能会引发 panic 的代码
// ...
panic("Oops! Something went wrong!") // 触发 panic
}
func doSomethingAfterPossiblePanic() {
// 在 panic 后继续执行的代码
// ...
}