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 サイトの他の関連記事を参照してください。