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

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

Linda Hamilton
發布: 2024-12-25 20:43:19
原創
759 人瀏覽過

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中文網其他相關文章!

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