首頁 > 後端開發 > Golang > golang錯誤拋出的方法

golang錯誤拋出的方法

發布: 2020-01-14 16:13:53
原創
4047 人瀏覽過

golang錯誤拋出的方法Go語言沒有提供像Java、C#語言中的try...catch異常處理方式,而是透過函數傳回值逐層往上拋。

Go標準套件提供的錯誤處理功能:

error是個interface:

type error interface {
    Error() string
}
登入後複製

如何建立error:

// example 1
func Sqrt(f float64) (float64, error) {
    if f < 0 {
        return 0, errors.New("math: square root of negative number")
    }
    // implementation
}

// example 2
if f < 0 {
    return 0, fmt.Errorf("math: square root of negative number %g", f)
}
登入後複製

如何自訂error:

// errorString is a trivial implementation of error.
type errorString struct {
    s string
}

func (e *errorString) Error() string {
    return e.s
}
登入後複製

go語言中一般有三種錯誤處理策略:

#1、回傳和檢查錯誤值:透過特定值表示成功和不同的錯誤,上層程式碼檢查錯誤的值,來判斷被調用func的執行狀態

2、自訂錯誤類型:透過自訂的錯誤類型來表示特定的錯誤,上層程式碼透過型別斷言判斷錯誤的型別

3、隱藏內部細節的錯誤處理:假設上層程式碼不知道被呼叫函數回傳的錯誤任何細節,直接再向上回傳錯誤

error interface 的 Error 方法的輸出,是給人看的,不是給機器看的。我們通常會把Error方法傳回的字串印到日誌中,或是顯示在控制台上。永遠不要透過判斷Error方法傳回的字串是否包含特定字串,來決定錯誤處理的方式。

更多golang知識請關注golang教程欄位。

以上是golang錯誤拋出的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板