Go で関数エラーを処理するときによくある間違いは、未処理のエラー、特定のエラーの無視、および複数のエラーの捕捉です。エラーを正しく処理するには、関数によって返される可能性のあるエラー値を常に処理し、errors.Is 関数を使用して特定のタイプのエラーを処理し、カスタム エラー タイプを定義するか、errors.New 関数を使用してエラー値を作成する必要があります。複数のエラーをキャッチするため。
Go の関数における一般的なエラー処理の問題
Go では、関数中に発生したエラーを示すためにエラー値が使用されます。問題。ただし、エラーの処理に関しては、コードの保守やデバッグを困難にする一般的な間違いがいくつかあります。
1. 未処理のエラー
未処理のエラーは、プログラムの実行中にパニックを引き起こし、プログラムを終了させます。これを回避するには、関数によって返される可能性のある不正な値を常に処理してください。
2. 特定のエラーを無視する
特定の種類のエラーのみを気にすることがあります。この場合、 errors.Is
関数を次のように使用できます:
if errors.Is(err, myError) { // 处理 myError 特定的情况 }
3. Go での複数のエラーの捕捉
errors.New 関数はエラー値を作成できますが、単一の文字列パラメータのみを受け入れます。複数のエラーを検出するには、次のメソッドを使用できます:
type MyErrors []error func (me MyErrors) Error() string { var errStr string for _, err := range me { errStr += err.Error() + "\n" } return errStr }
実用的なケース: ファイルの読み取り
指定された関数を使用してファイルを読み取る例を次に示します:func readFile(filename string) ([]byte, error) { data, err := os.ReadFile(filename) if err != nil { return nil, fmt.Errorf("error reading file: %w", err) } return data, nil }
その他のヒント
以上がgolang 関数でよくあるエラー処理の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。