Go 関数のエラー処理モードには、errors.New() を使用してエラーを作成すること、基礎となるエラーをラップすること、エラーがないことを示す nil を返すことなどが含まれます。アンチパターンには、マジック ナンバーまたは文字列を使用してエラーを表すこと、暗黙的にエラーを処理すること、エラーを無視すること、遅延終了パターンが含まれます。ベスト プラクティス: エラーを作成して返すには、errors.New() を使用します。アンチパターンの例: os.Open() によって返されるエラーを無視します。ベスト プラクティスに従い、アンチパターンを回避すると、明確で保守しやすく、デバッグしやすいコードが得られます。
Go 関数のエラー処理のパターンとアンチパターン
Go でエラーを処理する場合、さまざまな方法があります。 。ただし、すべてのモデルが理想的であるわけではありません。この記事では、Go での関数エラー処理のベスト プラクティスとアンチパターンを検討し、それらを示す実際の例を示します。
ベスト プラクティス:
エラーの作成:
これは作成です。新しいエラーの共通メソッド。簡潔な説明を含むerror値を返します。
を返します:
関数でエラーが発生しなかった場合、関数はnilを返す必要があります。
アンチパターン:
を使用しないでください。難しいトラックを扱う。
パターンを使用すると、コードの読み取りと保守が困難になります。 。
実際のケース:
ベスト プラクティス:次の関数は、errors.New()を使用して新しいエラー。呼び出し元にファイルのオープンに失敗したことを示すためにそれを返します:
func OpenFile(path string) (*os.File, error) { f, err := os.Open(path) if err != nil { return nil, errors.New("failed to open file: " + err.Error()) } return f, nil }
アンチパターン:次の関数は、os によって返されたエラーを処理しません。 .Open(): プログラムがクラッシュする可能性があります:
func OpenFile(path string) *os.File { f, _ := os.Open(path) return f }
以上がGolang 関数のエラー処理のパターンとアンチパターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。