檢查Go 中的自訂錯誤類型
在Go 中,當定義自訂錯誤類型時,有時需要確定其特定類型處理錯誤。但是,嘗試直接將錯誤與自訂錯誤類型進行比較可能會導致錯誤,例如「類型 model.ModelMissingError 不是表達式」。
要檢查自訂錯誤類型,關於錯誤的Go 部落格文章建議使用逗號ok 慣用法:
serr, ok := err.(*model.ModelMissingError)
此慣用法嘗試將錯誤值err 斷言為指向特定類型的指針,在本例中為model.ModelMissingError。如果斷言成功,serr 將包含錯誤的底層具體值,並且 ok 將為 true。否則,serr 將為 nil,ok 將為 false。
透過使用逗號ok 習慣用法,您可以安全地檢查錯誤是否屬於特定自訂類型並採取適當的操作,而不會觸發恐慌:
if ok { // Handle the error as a ModelMissingError } else { // Handle the error as a different type }
當您有一個當您可以表示多個不同錯誤的通用錯誤介面時,此習慣用法特別有用,可讓您區分特定的錯誤類型以自訂錯誤處理。
以上是如何安全地檢查 Go 中的自訂錯誤類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!