1. 程式人生 > 其它 >十五:GO語言的錯誤處理機制

十五:GO語言的錯誤處理機制

GO語言在預設情況下,當發生錯誤後(panic),程式就會退出(崩潰)

如果希望在發生錯誤後,可以捕獲到錯誤,並進行處理,保證程式可以繼續執行,則需要使用GO語言的錯誤處理機制

GO語言中的錯誤處理方式為:defer,panic,recover

這三者的關係為,在程式出現錯誤的時候可以丟擲一個panic的一場,然後在defer中通過recover來捕獲這個異常,之後再進行相應處理,比如寫錯誤日誌或者給管理員傳送一封錯誤郵件

程式碼示例

該函式在執行到17行的時候會報錯,因為num2為0,無法進行運算,所以會報錯

輸出結果

這裡可以看到,在main中呼叫該函式後,捕獲異常並且正常輸出,

然後接著執行main函式中後面的程式碼

自定義錯誤

  介紹:

  GO程式中,也支援自定義錯誤,使用errors.New和panic內建函式

  1.errors.New("錯誤說明"),會返回一個error型別的值,表示一個錯誤

  2.panic內建函式,接受一個interface{}型別的值(在GO語言中interface{}可以是任何值)作為引數,可以接受error型別的變數,輸出錯誤資訊,並退出程式  

  

輸出結果

在程式中使用panic時,程式會被終止,並且輸出傳入panic函式中的引數內容