Golang を使用してカスタム エラー タイプを作成するにはどうすればよいですか?

王林
リリース: 2024-06-05 22:54:59
オリジナル
724 人が閲覧しました

Go でカスタム エラー タイプを作成するには、次の手順が必要です: エラー タイプをベースとして使用して新しいタイプを作成し、カスタム フィールドを追加します。エラー インターフェイスに Error() メソッドを実装して、カスタム エラー情報を返します。コード内でカスタム エラー タイプを使用すると、より説明的なエラー メッセージが返されます。これらの手順により、カスタム エラー タイプを定義して、より明確なエラー メッセージを提供し、デバッグを簡素化することができます。

如何使用 Golang 创建自定义错误类型?

Go でカスタム エラー タイプを作成するにはどうすればよいですか?

Go では、エラー型は、操作中に発生するエラーを表すために使用される特別な組み込み型です。デフォルトでは、Go は組み込みの error 型を提供しますが、これは構造化された有効なデータ型ではないため、より関連性の高いコンテキスト情報を伝えることができません。この問題を解決するために、Go ではカスタム エラー タイプを定義できます。 error 类型,但它并不是一个结构化有效的数据类型,并且无法传递更多相关上下文信息。为了解决这个问题,Go 允许您定义自定义错误类型。

创建自定义错误类型

要创建自定义错误类型,请使用 error 类型作为基础并添加额外的字段以捕获特定错误条件:

type MyError struct {
    Code    int
    Message string
}

// implement the error interface
func (e *MyError) Error() string {
    return fmt.Sprintf("Code: %d, Message: %s", e.Code, e.Message)
}
ログイン後にコピー

通过实现内置的 error 接口,MyError 类型可以被当作 error

カスタム エラー タイプを作成する

カスタム エラー タイプを作成するには、error タイプをベースとして使用し、特定のエラー状態をキャプチャするフィールドを追加します。 < code>error インターフェイス、MyError 型は error 型として扱うことができます。

カスタム エラー タイプの使用

カスタム エラー タイプを作成した後、コード内でそれらを使用して、より説明的なエラー メッセージを返すことができます:

func MyFunction() error {
    if valid {
        return nil
    }
    return &MyError{
        Code:    400,
        Message: "Validation failed",
    }
}
ログイン後にコピー

実際のケース

JSON を解析して次の形式に変換する A 関数があるとします。構造体を作成し、解析が失敗した場合にエラー コードとメッセージを含むカスタム エラーを返したいとします。次のようなカスタム エラー タイプを使用できます: 🎜
type JSONParseError struct {
    Code    int
    Message string
}

func (e *JSONParseError) Error() string {
    return fmt.Sprintf("Code: %d, Message: %s", e.Code, e.Message)
}
ログイン後にコピー
🎜 解析関数は、このエラー タイプを使用して、より具体的なエラー メッセージを返すことができます: 🎜
func ParseJSON(data []byte) (result MyStruct, err error) {
    err = json.Unmarshal(data, &result)
    if err != nil {
        return result, &JSONParseError{
            Code:    500,
            Message: "Unable to parse JSON",
        }
    }
    return result, nil
}
ログイン後にコピー
🎜 カスタム エラー タイプを使用すると、より多くの情報と構造を提供できます。 最適化されたエラー処理により、デバッグと問題解決が容易になります。 🎜

以上がGolang を使用してカスタム エラー タイプを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!