比較 Go 中的錯誤訊息
在 Go 中,錯誤只是實作錯誤介面的值。這意味著可以使用標準相等運算子(== 和 !=)來比較錯誤。但是,通常不建議透過 Error() 方法傳回的字串表示形式來比較錯誤。這是因為字串表示形式可能會隨著時間的推移而變化,這可能會使您的程式碼變得脆弱。
比較錯誤的更可靠方法是使用儲存預期錯誤的包級變數。此變數可用於與函數傳回的錯誤進行比較。例如:
package mypkg import ( "errors" ) // ErrExample is an example error. var ErrExample = errors.New("this is an example") // DoSomething returns an error if something goes wrong. func DoSomething() error { // ... // If something goes wrong, return the error. return ErrExample }
要與DoSomething() 傳回的錯誤進行比較,可以使用下列程式碼:
if err := DoSomething(); err != nil { // Handle the error. }
如果DoSomething() 傳回的錯誤等於ErrExample,則執行if語句。
如果包外的程式碼需要存取包級變量,也可以匯出包級變數 錯誤。例如:
package mypkg import ( "errors" ) // ErrExample is an example error. var ErrExample = errors.New("this is an example") // Export the error. var ErrExample = ErrExample
要使用匯出的錯誤,可以使用下列程式碼:
if err := somepackage.DoSomething(); err != nil { // Handle the error. }
如果 somepackage.DoSomething() 傳回的錯誤等於 mypkg.ErrExample ,然後執行 if 語句。
透過使用包級變數來比較錯誤,可以讓你的程式碼更可靠,不易碎。
以上是如何可靠地比較 Go 中的錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!