golang的panic用法
生活随笔
收集整理的這篇文章主要介紹了
golang的panic用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Go語言追求簡潔優雅,所以,Go語言不支持傳統的 try…catch…finally 這種異常,因為Go語言的設計者們認為,將異常與控制結構混在一起會很容易使得代碼變得混亂。因為開發者很容易濫用異常,甚至一個小小的錯誤都拋出一個異常。在Go語言中,使用多值返回來返回錯誤。不要用異常代替錯誤,更不要用來控制流程。在極個別的情況下,也就是說,遇到真正的異常的情況下(比如除數為 0了)。才使用Go中引入的Exception處理:defer, panic, recover。
這幾個異常的使用場景可以這么簡單描述:Go中可以拋出一個panic的異常,然后在defer中通過recover捕獲這個異常,然后正常處理。
package mainimport "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") }
輸出結果:
a
c
55
d
總結
以上是生活随笔為你收集整理的golang的panic用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 彻底弄懂计算机中的大端小端
- 下一篇: error C4996: 'strcpy