使用自訂錯誤類型豐富 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中文網其他相關文章!