比較 Go 中的錯誤訊息
在 Java 中,您可以使用 GetMessage() 從異常中擷取錯誤訊息。然而,在 Go 中,沒有為錯誤類型定義等效的方法。相反,必須採用自訂錯誤處理技術。
自訂錯誤處理
一種方法是定義一個包級變數來表示您想要的特定錯誤訊息檢查一下。例如:
var errExample = errors.New("this is an example")
傳回錯誤時,可以使用此變數取代通用錯誤字串:
if err := some_package.DoSomething(); err != nil { if err == errExample { // handle it however. } }
匯出錯誤變數
如果套件外的程式碼需要存取錯誤,可以使用大寫匯出變數letter:
var ErrExample = errors.New("this is an example")
這允許您將錯誤與匯出的變數進行比較:
if err == somepackage.ErrExample { // handle it }
範例
陷阱:避免使用字串比較
抵制與錯誤的 Error() 方法傳回的字串進行比較的誘惑。這可能會導致程式碼變得脆弱。例如:if err.Error() == "this is an example" { // this is not recommended }
以上是與 Java 的 GetMessage() 不同,我如何有效地比較和處理 Go 中的錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!