GoLang 関数のエラー処理のベスト プラクティスには、error 変数を使用してエラーを受信すること、nil 値をチェックしてエラーがあるかどうかを確認すること、遅延回復メカニズムを使用してパニックを処理することなどが含まれます。 ; 実際のケースでは、これらのベスト プラクティスを示しています。 CSV 変換 JSON 関数の適用を練習します。
GoLang でエラーを処理する場合、コードを堅牢にして保守しやすくするためのベスト プラクティスがいくつかあります。最も一般的なテクニックのいくつかを見てみましょう:
error
変数の使用GoLang の error
型は、関数の操作中に発生する可能性のあるエラーを表します。 。これらのエラーは、error
変数を使用して受信し、慎重に処理する必要があります。次の例はこれを示しています。
func divide(a, b int) (float64, error) { if b == 0 { return 0, errors.New("divisor cannot be zero") } return float64(a) / float64(b), nil }
nil
error
値は nil
で、エラーがないことを示します。したがって、error
変数を使用する場合は、nil
をチェックしてエラーが存在するかどうかを判断することが重要です。例:
if err != nil { // 处理错误(打印、记录等) }
errors
パッケージの使用GoLang の errors
パッケージには、エラーの作成と処理に役立つ関数が用意されています。カスタム エラー メッセージを作成する場合に特に便利です。
import "errors" // 创建自定义错误类型 var MyError = errors.New("my custom error")
defer
リカバリ メカニズムの defer
ステートメントを使用すると、エラーが発生するまで操作の実行を遅らせることができます。関数が戻ります。これは、パニックから回復してエラーを処理するために、recover()
組み込み関数と組み合わせてよく使用されます。
func recoverExample() { defer func() { if err := recover(); err != nil { // 处理从恐慌中恢复的错误 } }() // 代码可能导致恐慌 }
上記のベスト プラクティスを使用する JSON オブジェクトの関数を変換する CSV ファイル:
import ( "encoding/csv" "errors" "io" "strconv" ) // 将 CSV 文件转换成 JSON 对象 func CSVtoJSON(csvReader io.Reader) (map[string]interface{}, error) { csvData, err := csv.NewReader(csvReader).ReadAll() if err != nil { return nil, err } data := make(map[string]interface{}) for _, row := range csvData { name := row[0] value := row[1] if _, ok := data[name]; ok { return nil, errors.New("duplicate key: " + name) } // 将 string 转换为 float64 floatValue, err := strconv.ParseFloat(value, 64) if err != nil { return nil, err } data[name] = floatValue } return data, nil }
これらのベスト プラクティスに従うことで、GoLang 関数でエラーが確実かつ効率的に処理されるようにすることができます。
以上がgolang 関数でのエラー処理のベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。