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