Go でカスタム関数の例外を処理するには 3 つの方法があります。パニック組み込み関数を使用します (構文については記事を参照)。実用的なケース: 除数が 0 の場合の除算関数の定義、パニックの利点: 便利でカスタマイズ可能なエラー。さまざまな関数レベルでエラーを処理する場合の欠点: プログラム フローが中断され、デバッグが困難になる
カスタムの処理Go の関数 例外には多くのメソッドがあります。 1 つの方法は、panic
組み込み関数を使用することです。 panic
はプログラム制御を recover
関数に渡し、例外を処理してプログラムの実行を安全に再開できるようにします。
package main import "fmt" func main() { f := func() { panic("custom error") } defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() f() }
注: defer
ステートメントは、panic
ステートメントの前に配置する必要があります。発生する が呼び出されるとき。
divide という名前のカスタム関数を定義します。除数が 0 の場合、関数は例外をトリガーします。
package main import "fmt" func main() { divide := func(numerator, denominator int) float64 { if denominator == 0 { // 触发错误 panic("不能除以 0") } return float64(numerator) / float64(denominator) } defer func() { if r := recover(); r != nil { fmt.Println("错误:", r) } }() result := divide(10, 2) fmt.Println(result) // 输出:5 result = divide(10, 0) // 触发错误 }出力:
5 错误: 不能除以 0利点
以上がgolangカスタム関数実装での例外処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。