首頁 > 後端開發 > Golang > Go 中處理錯誤的最佳實踐是什麼?

Go 中處理錯誤的最佳實踐是什麼?

Linda Hamilton
發布: 2024-12-31 05:28:13
原創
1022 人瀏覽過

What are the Best Practices for Handling Errors in Go?

Go 中的標準錯誤處理程序

Go有幾種慣用的錯誤處理方法:

1.修正了錯誤變數

var (
    ErrSomethingBad = errors.New("some string")
    ErrKindFoo      = errors.New("foo happened")
)
登入後複製

2.錯誤類型

type SomeError struct {
    ExtraInfo int
}
func (e SomeError) Error() string { /* … */ }
登入後複製

3.特別錯誤

func SomepackageFunction() error {
    return errors.New("not implemented")
}
登入後複製

4.標準函式庫錯誤

func SomeFunc() error {
    return io.EOF
}
登入後複製

type Error interface {
    error
    Timeout() bool
    Temporary() bool
}
登入後複製

6.換行錯誤 (Go 1.13 )

func SomepackageFunction() error {
    err := somethingThatCanFail()
    if err != nil {
        return fmt.Errorf("some context: %w", err)
    }
}
登入後複製

選擇正確的方法

首選方法是:

  • 修復錯誤用戶可能想要測試的錯誤的變數或錯誤類型具體來說。
  • 臨時錯誤或不太可能測試的小錯誤的標準庫錯誤。
  • 具有特定行為或屬性的錯誤的錯誤介面。
  • 封裝的錯誤新增上下文(Go 1.13 ).

優點:

  • 優點:
  • 修正錯誤變數:
  • 易於測試和比較。
  • 錯誤類型:
  • 可透過錯誤的附加資訊擴充
  • 暫時錯誤:
  • 針對小錯誤進行簡潔。
  • 錯誤介面:
  • 強制執行特定的錯誤行為並促進多態性。

包裝錯誤: 提供上下文而不建立自訂錯誤類型。

  • 進一步閱讀:
  • [有效繼續錯誤](https://go.dev/doc/articles/errors)
  • [Go部落格:錯誤處理和Go](https://blog.golang.org/error-handling-and-go)
[Dave Cheney:檢查錯誤](https://dave.cheney.net/ 2016/04/07 /檢查錯誤)[Peter Bourgon:使用錯誤](https://go.dev/blog/errors)

以上是Go 中處理錯誤的最佳實踐是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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