错误处理panic和recover

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