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

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

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 学習者の迅速な成長を支援します!