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

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

Patricia Arquette
Patricia Arquette原創
2024-12-19 14:15:10596瀏覽

How Can I Safely Check for a Custom Error Type in Go?

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

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