1. 程式人生 > >golang異常panic和恢復recover用法

golang異常panic和恢復recover用法

go中可以丟擲一個panic的異常,然後在defer中通過recover捕獲這個異常,然後正常處理

在一個主程序,多個go程處理邏輯的結構中,這個很重要,如果不用recover捕獲panic異常,會導致整個程序出錯中斷

package main


import "fmt"
func main() {
defer func() {     //必須要先宣告defer,否則不能捕獲到panic異常
fmt.Println("c")
if err := recover(); err != nil {
fmt.Println(err)    //這裡的err其實就是panic傳入的內容,55
}
fmt.Println("d")
}()
f()    
}


func f() {
fmt.Println("a")
panic(55)
fmt.Println("b")

fmt.Println("f")
}