はい、Go でカスタム エラー タイプを定義するには、エラー インターフェイスを実装する構造体を作成し、エラー メッセージを返す Error() メソッドを提供します。カスタム エラー タイプは、errors.New 関数またはカスタム タイプを使用して作成できます。実際には、カスタム エラー タイプにより、より具体的で意味のあるエラー メッセージが提供され、アプリケーションの使いやすさと保守性が向上します。
Go では、通常、エラーは組み込みの error
インターフェイスを通じて表されます。ただし、場合によっては、カスタムのアプリケーション固有のエラー タイプを定義する必要があります。この記事では、カスタム エラー タイプを作成する方法について説明し、実際のケースを示します。
カスタム エラー タイプの作成
カスタム エラー タイプは、error
インターフェイスを実装する構造体を作成することで実装できます。
type MyError struct { msg string } func (e *MyError) Error() string { return e.msg }
Error() string
メソッドはエラー メッセージを返します。これは、error
インターフェイスの要件です。
使用法
カスタム エラー タイプは、文字列パラメーターをエラー メッセージとして受け入れる errors.New
関数を使用して作成できます。
err := errors.New("my error message")
あるいは、カスタム タイプを使用してエラーを作成することもできます:
err := &MyError{msg: "my error message"}
実用的なケース
シナリオ: Verifyユーザーが入力した年齢。
エラー タイプ:
type InvalidAgeError struct { msg string } func (e *InvalidAgeError) Error() string { return e.msg }
エラー チェック コード:
func ValidateAge(age int) error { if age < 18 { return &InvalidAgeError{msg: "年龄必须大于或等于 18"} } return nil }
エラー処理コード:
age := 15 err := ValidateAge(age) if err != nil { fmt.Println("错误:", err) } else { fmt.Println("年龄已验证") }
出力:
错误:年龄必须大于或等于 18
カスタム エラー タイプでは、より具体的で意味のあるエラー メッセージが提供され、アプリケーションの使いやすさと保守性の向上に役立ちます。
以上がカスタム golang 関数のエラーの種類の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。