91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

屯昌县| 屏东县| 纳雍县| 马边| 本溪市| 云浮市| 桃源县| 饶平县| 金湖县| 且末县| 郁南县| 曲水县| 克山县| 乌什县| 高安市| 平泉县| 县级市| 德惠市| 保靖县| 元江| 多伦县| 广丰县| 连州市| 甘泉县| 景德镇市| 陵水| 海兴县| 麻栗坡县| 镇巴县| 隆化县| 萍乡市| 高唐县| 万年县| 常德市| 天长市| 高陵县| 隆尧县| 资溪县| 综艺| 同仁县| 富宁县|