亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

依兰县| 酉阳| 黄陵县| 滨海县| 舒城县| 虎林市| 隆化县| 定西市| 松阳县| 正镶白旗| 攀枝花市| 钟山县| 达拉特旗| 安宁市| 郯城县| 阿瓦提县| 京山县| 正安县| 庄浪县| 寿宁县| 瑞丽市| 徐水县| 徐汇区| 昌邑市| 桂平市| 肥城市| 洪泽县| 文水县| 贵德县| 榆林市| 渑池县| 天长市| 新营市| 县级市| 万山特区| 兴文县| 通城县| 连云港市| 阜康市| 东莞市| 时尚|