Go異常處理defer panic recover

2021-09-25 05:16:26 字數 1035 閱讀 2169

異常處理功能猶如 try … catch … finally …

func d() 

defer f.close() // 在這裡可以避免忘記檔案關閉,尤其在複雜的邏輯判斷業務處理中,容易遺漏檔案關閉操作。

// do something

}

func d() 

}

結果

321

0

func d() (i) // 傳入當前 i 值, i==1

i += 1

fmt.println(i) // i == 2

}

結果:

2

1

func d() (i int) ()

k := 1

return k // 最後返回的值是 2;

}

上面執行的順序是:

k := 1   // 1

i = k // 1

i++ // 2

return i // 2

func f(a, b int) int  else 

}()fmt.println(a) // 按順序輸出

if a > 10

f(b, a+b)

return 1

}func main()

執行結果

011

2358

13 // a 按順序輸出

recover // panic被處理,所以不輸出panic,只輸出recover

nothing

nothing

nothing

nothing

nothing

nothing

nothingc // defer資訊按壓入棧的順序輸出

Go異常處理

首先很抱歉,由於搬家,最近太多事情要處理,導致文章更新比較慢。這篇文章,我們講go中的異常處理。go提供了兩個內建函式 panic 和recover 用於異常處理。go中,對異常處理的整體原則是 多用errors包,少用panic。對於可預見的錯誤,比如網路連線失敗等,一般都使用errors,只有重...

go 異常處理

package main import fmt 異常處理 defer panic recover defer 表示延遲呼叫,即便程式出現嚴重錯誤,也會執行 panic 就是python中的raise 主動丟擲異常 recover 恢復程式,繼續執行 func main func f1 func f2...

go語言基礎異常處理

異常處理模板 package main import fmt 異常處理 defer panic recover defer 表示延遲呼叫,即便程式出現嚴重錯誤,也會執行 panic 就是python中的raise 主動丟擲異常 recover 恢復程式,繼續執行 func main func f1 ...