func divide(x, y int) (int, error) { if y == 0 { return 0, errors.New("division by zero") } return x / y, nil } result, err := divide(10, 0) if err != nil { fmt.Println("Error:", err) } else { fmt.Println("Result:", result) }
errors パッケージは、カスタム エラーを作成する機能を提供します。
errors.New() によって新しいエラーを作成することも、
fmt.Errorf() を使用して、以下に示すように追加情報を含むエラーを作成することもできます。
3. defer とcover を使用してエラーをキャプチャする
と recover
ステートメントを使用してエラーをキャプチャし、処理できます。 defer
ステートメントは、関数が戻る前に特定の操作を実行するために使用され、recover
関数はパニック例外をキャプチャするために使用されます。以下に例を示します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:go;toolbar:false;'>func checkAge(age int) error {
if age < 0 {
return errors.New("Age can't be negative")
}
return nil
}
func main() {
err := checkAge(-10)
if err != nil {
fmt.Println("Error:", err)
}
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
4. 複数の戻り値を上手に利用してエラーを処理する
func handleError() { defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() panic("Something went wrong") } func main() { handleError() }
結論
以上がGolang の優れたエラー処理方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。