Go中recover與panic區別詳解
阿新 • • 發佈:2020-01-09
概念
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 }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。