程式碼案例
func main() {
fmt.Println("開始------")
for i:=0;i<10 ;i++ {
func() {
defer func() {
if err := recover();err != nil{
fmt.Println(err)
}
}()
if i == 2{
panic("2 這裡丟擲異常了----- ")
}else {
fmt.Println(i)
}
}()
fmt.Sprintf("測試一下 %v \n",i)
}
fmt.Println("結束------")
)
輸出結果
開始------
0
1
2 這裡丟擲異常了-----
3
4
5
6
7
8
9
結束------
匿名函式後面加()是執行這個函式的意思。所以defer裡面的function後帶(),return 後面不能帶 ()
本作品採用《CC 協議》,轉載必須註明作者和本文連結