錯誤處理,是非常重要的。在go語言中,錯誤處理被設計的十分簡單。
如果做得好,會在排查問題等方面很有幫助;如果做得不好,就會比較麻煩。
從1.0開始,go中定義錯誤為 error 介面
// The error built-in interface type is the conventional interface for // representing an error condition, with the nil value representing no error. type error interface { Error() string }
go語言中,錯誤處理的幾種方式:
1、透過判斷值相等。像io.EOF,go語言中,稱為sentinel error
2、透過斷言( type assertion or type switch),判斷err的類型或是否實作了某個介面
#3、利用包提供的方法。像是 os.IsNotExist。 go語言中,稱為 ad-hoc check
4、當上面3中方式不可用時,透過搜尋 err.Error() 是否包含特定字串。 (不被推薦)
盡量不要使用 sentinel error
盡量不要使用 ad-hoc check
#以上是golang中的錯誤處理方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!