十五:GO語言的錯誤處理機制
阿新 • • 發佈:2021-08-12
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函式中的引數內容