首頁 > 後端開發 > Golang > 如何在 Go 中對自訂錯誤執行類型斷言?

如何在 Go 中對自訂錯誤執行類型斷言?

Patricia Arquette
發布: 2024-12-24 01:06:11
原創
309 人瀏覽過

How to Perform Type Assertions for Custom Errors in Go?

Go 中自訂錯誤處理的類型斷言

在 Go 中,自訂錯誤類型允許更具體的錯誤處理。然而,檢查錯誤的確切類型可能具有挑戰性。本文解決如何對自訂錯誤執行類型斷言的問題。

此問題重點在於如何使用自訂 ModelMissingError 類型來表示缺少的模型錯誤。拋出此錯誤的方法的呼叫者希望檢查其類型並採取相應的操作。

問題中提供的程式碼片段使用相等運算子(==) 將錯誤變數與ModelMissingError 類型進行比較,這會導致錯誤「type model.ModelMissingError is not an expression.」

解決方案在於在類型斷言中使用“comma ok idiom”。以下程式碼示範如何執行此操作:

serr, ok := err.(*model.ModelMissingError)
登入後複製

此語法斷言介面變數 err 持有 *model.ModelMissingError 類型的特定值,並將基礎值指派給 serr。它還為 ok 分配一個布林值,以指示斷言是否成功。

「comma ok idiom」可讓您檢查錯誤的確切類型,而不會在類型斷言失敗時觸發恐慌。如果 ok 為 true,則錯誤屬於預期類型,您可以根據 serr 採取適當的操作。

透過利用類型斷言和“comma ok idiom”,您可以有效地檢查中的自訂錯誤類型相應地處理它們,為錯誤處理提供更大的靈活性和精確度。

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

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