package main
import (
"fmt"
)
// recover通过捕获错误来调用其他备用策略来应付出错问题,避免程序终止.
func mayPanic() {
panic("a problem")
}
func main() {
// recover函数必须在defer中使用
// 当出现panic抛出异常时,defer函数会被激活,并且里面的recover函数会捕获错误
defer func() {
if err := recover(); err != nil {
// 可以在这里另外处理问题
fmt.Println("Recovered error:\n", err) // "a problem"
}
}()
mayPanic()
fmt.Println("After, don't run") // 这段代码不会执行
}
05-10
427
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)