Go 関数では、関数はエラー オブジェクトを返すことによってエラーを伝播することができ、呼び出し側の関数が処理を担当します。エラー処理方法には、エラーの無視、ログ記録、警告、およびエラーの返しが含まれます。実際には、エラー ハンドラーを使用して、発生する可能性のあるエラーを簡単に処理したり、説明的なエラー メッセージを使用してエラーを特定して処理したりすることができます。さらに、errors.Is 関数とerrors.As 関数は、比較エラーと型変換エラーに使用できます。
Go での関数エラーの伝播と処理
Go 言語では、関数が error# を返すことがあります。 # # 関数の実行が失敗した理由に関する詳細情報を提供できるオブジェクト。エラー処理は、堅牢で保守可能なコードを作成するのに役立つ Go 言語の重要な概念です。
エラーの伝播
関数がエラー オブジェクトを返すと、エラーが伝播されます。これは、それを呼び出した関数がエラーを処理する責任を負うことを意味します。この関数はエラー自体を返すことも、ログやアラートなどの他の手段を通じてエラーを処理することもできます。 例を見てみましょう:func divide(a, b int) (int, error) { if b == 0 { return 0, fmt.Errorf("除数不能为 0") } return a / b, nil }
divide 関数は、除算器が 0 の場合にエラーを返します。
divide 関数を呼び出した関数がこのエラーを処理することになりました。
func main() { result, err := divide(10, 2) if err != nil { fmt.Println("除法出错:", err) } else { fmt.Println("结果:", result) } }
エラー処理
エラー処理はエラーを処理する方法です。 。エラー ハンドラは、エラー オブジェクトを受け取り、それを処理する関数です。これはさまざまな方法で実装できます。例: や
fmt.Println などのメソッドを使用して、エラーをログ ファイルに書き込みます。
実際的なケース
次の関数があるとします。func getFromDB(id int) (string, error) { // 从数据库中获取数据 // ... return data, nil // 模拟成功的情况 }エラー ハンドラーを使用すると、エラー ハンドラーで発生する可能性のある問題を簡単に処理できます。 getFromDB 関数エラー:
func main() { data, err := getFromDB(1) if err != nil { // 处理错误,例如: // - 忽略错误 // - 日志记录错误 // - 告警错误 return } // 使用数据... }
その他のヒント
関数と
errors.As 関数の使用を検討してください。
以上がGolang 関数でのエラーの伝播と処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。