1. 程式人生 > 程式設計 >Go中recover與panic區別詳解

Go中recover與panic區別詳解

概念

panic 與 recover 是 Go 的兩個內建函式,這兩個內建函式用於處理 Go 執行時的錯誤。

panic用於主動丟擲錯誤,recover 用來捕獲panic 丟擲的錯誤。

func main() {
  //捕獲 異常
  defer func() {
    if p := recover(); p != nil {
      fmt.Printf("panic recover! p: %v",p)
      //型別判斷
      str,ok := p.(string)
      if ok {
        err := errors.New(str)
        fmt.Println(err)
      } else {
        err := errors.New("panic")
        fmt.Println(err)
      }

    }
  }()
  fmt.Println("hello world")
  add(1,0)
}

func add(x,y int) int {
  // 丟擲錯誤
  panic("test")
  z := x / y
  return z
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。