ホームページ >バックエンド開発 >Golang >Go でカスタム エラー タイプを適切に処理するにはどうすればよいですか?

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

DDD
DDDオリジナル
2024-12-27 14:36:11897ブラウズ

How Can I Gracefully Handle Custom Error Types in Go?

Go でのカスタム エラー タイプの処理

Go でカスタム エラー タイプを使用する際に問題が発生しました。エラーに関するブログ投稿を参照した後、カスタム エラー タイプ ModelMissingError を定義しようとしましたが、そのタイプをチェックするときにエラーが発生しました。

この問題を解決するには、「comma ok」イディオムを使用する必要があります。

serr, ok := err.(*model.ModelMissingError)

このイディオムを使用すると、インターフェイス値の型をアサートし、基礎となる具体的な値を取得できます。この場合、エラー変数 err が *model.ModelMissingError の具体的な型を保持しているかどうかを確認するためにテストされます。

アサーションが成功した場合、ok は true に設定され、serr は基礎となる *model を保持します。 .ModelMissingError 値。この値を使用して、カスタム エラーに基づいて適切なアクションを実行できます。

たとえば、コードを次のように変更できます。

if ok && serr.msg == "no model found for id" {
    // Handle error gracefully
}

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。