首頁 >後端開發 >Golang >如何檢查Go中自訂錯誤的類型?

如何檢查Go中自訂錯誤的類型?

Linda Hamilton
Linda Hamilton原創
2024-12-25 20:43:19767瀏覽

How Can I Check the Type of a Custom Error in Go?

在 Go 中自訂錯誤類型

使用自訂錯誤類型豐富 Go 應用程式可以增強錯誤處理,但操作這些自訂類型可能具有挑戰性。讓我們深入研究檢查自訂錯誤類型的問題。

問題

考慮以下自訂錯誤類型:

type ModelMissingError struct {
    msg string // description of error
}

func (e *ModelMissingError) Error() string { return e.msg }

在一個方法中,我們可以拋出自訂錯誤:

return Model{}, &ModelMissingError{"no model found for id"}

查詢

To確定錯誤是否是特定的自訂類型,我們需要檢查其類型。然而, if err == model.ModelMissingError 的方法失敗​​了。

Go 提供了comma ok idiom 來檢查型別斷言:

serr, ok := err.(*model.ModelMissingError)

該語句斷言錯誤變數err 持有model. ModelMissingError 類型並且將基礎值指派給變數serr。如果 err 不符合預期的類型,則語句將為 serr 傳回 nil,為 ok 傳回 false。

透過使用逗號 ok 習慣用法,我們可以有效地驗證自訂錯誤的類型並進行相應的處理。

以上是如何檢查Go中自訂錯誤的類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn