错误处理panic和recover
panic
//抛出错误
func main(){
panic(err)
}
func callback(p bool) {
if p {
panic("callback panic")
}
fmt.Println("callback running...")
}
recover
//错误后处理错误或继续运行,需要使用延迟执行recover
func main(){
defer func() {
if err := recover(); err != nil { //recover捕捉错误信息
fmt.Println("出错了, 进行恢复", err)
}
}()
panic("错误")
}
//捕捉并返回一个错误
func test(p tool)(err error){
defer func(){
if msg:=recover();msg !=nil{
err=fmt.Errorf(msg)
}
}()
callback(p)
}
文档更新时间: 2022-12-05 14:46 作者:张尚