中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang如何截獲錯誤

發布時間:2020-05-08 15:31:36 來源:億速云 閱讀:109 作者:Leah 欄目:編程語言

今天小編就為大家帶來一篇golang如何截獲錯誤的文章。小編覺得挺不錯的,為此分享給大家做個參考。一起跟隨小編過來看看吧。

golang如何截獲錯誤

Golang中引入error接口類型作為錯誤處理的標準模式,如果函數要返回錯誤,則返回值類型列表中肯定包含error。error處理過程類

似于C語言中的錯誤碼,可逐層返回,直到被處理。

Golang中引入兩個內置函數panic和recover來觸發和終止異常處理流程,同時引入關鍵字defer來延遲執行defer后面的函數。

一直等到包含defer語句的函數執行完畢時,延遲函數(defer后的函數)才會被執行,而不管包含defer語句的函數是通過return的正

常結束,還是由于panic導致的異常結束。你可以在一個函數中執行多條defer語句,它們的執行順序與聲明順序相反。

推薦學習《golang教程》

當程序運行時,如果遇到引用空指針、下標越界或顯式調用panic函數等情況,則先觸發panic函數的執行,然后調用延遲函數。調用

者繼續傳遞panic,因此該過程一直在調用棧中重復發生:函數停止執行,調用延遲執行函數等。如果一路在延遲函數中沒有recover

函數的調用,則會到達該攜程的起點,該攜程結束,然后終止其他所有攜程,包括主攜程(類似于C語言中的主線程,該攜程ID為

1)。

錯誤和異常從Golang機制上講,就是error和panic的區別。很多其他語言也一樣,比如C++/Java,沒有error但有errno,沒有panic

但有throw。

Golang錯誤和異常是可以互相轉換的:

錯誤轉異常,比如程序邏輯上嘗試請求某個URL,最多嘗試三次,嘗試三次的過程中請求失敗是錯誤,嘗試完第三次還不成功的話,

失敗就被提升為異常了。異常轉錯誤,比如panic觸發的異常被recover恢復后,將返回值中error類型的變量進行賦值,以便上層函數

繼續走錯誤處理流程。

關于golang如何截獲錯誤就分享到這里了,希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陕西省| 界首市| 衡山县| 绥芬河市| 黎平县| 策勒县| 澄江县| 南城县| 连云港市| 桃园县| 咸丰县| 斗六市| 福安市| 天柱县| 澎湖县| 镶黄旗| 南雄市| 周至县| 阿合奇县| 扎鲁特旗| 长沙县| 南丹县| 老河口市| 即墨市| 新泰市| 田林县| 阳西县| 安陆市| 普定县| 屯门区| 泸水县| 社旗县| 孝昌县| 汾阳市| 合水县| 玉林市| 肇州县| 玛纳斯县| 马山县| 准格尔旗| 延长县|