使用defer, panic, recover捕獲異常
package main
import "fmt"
func main(){
defer func(){ //defer的作用就是在此函數運行完畢之後執行(無論是否正常運行)並且這個defer必須寫在f()的前面,有興趣知道爲什麼的可以留言
fmt.Println("a")
if err:=recover();err!=nil{
fmt.Println(err)
}
fmt.Println("b")
}()
f()
}
func f(){
fmt.Println("1")
panic(2)
fmt.Println("3")
fmt.Println("4")
}
輸出結果:
1
a
2
b