パッケージ org.springframework.web
インターフェース ErrorResponse
- すべての既知の実装クラス:
AsyncRequestTimeoutException、ErrorResponseException、HandlerMethodValidationException、HttpMediaTypeException、HttpMediaTypeNotAcceptableException、HttpMediaTypeNotSupportedException、HttpRequestMethodNotSupportedException、MaxUploadSizeExceededException、MethodArgumentNotValidException、MethodNotAllowedException、MissingMatrixVariableException、MissingPathVariableException、MissingRequestCookieException、MissingRequestHeaderException、MissingRequestValueException、MissingRequestValueException、MissingServletRequestParameterException、MissingServletRequestPartException、NoHandlerFoundException、NoResourceFoundException、NoResourceFoundException、NotAcceptableStatusException、PayloadTooLargeException、ResponseStatusException、ServerErrorException、ServerWebInputException、ServletRequestBindingException、UnsatisfiedRequestParameterException、UnsatisfiedServletRequestParameterException、UnsupportedMediaTypeStatusException、WebExchangeBindException
public interface ErrorResponse
ステータス、ヘッダー、RFC 9457 形式の
ProblemDetail 本文を含む完全な RFC 9457 エラーレスポンスの表現。例外によって HTTP エラーレスポンス情報を公開できます。ErrorResponseException は、このインターフェースのデフォルト実装であり、他の例外を使用するための便利な基本クラスです。
ErrorResponse は、たとえば @ResponseBody としてマークされたり、@RestController または RestControllerAdvice クラスで宣言されたりして、レスポンスに直接レンダリングされる @ExceptionHandler メソッドからの戻り値としてサポートされます。
- 導入:
- 6.0
- 作成者:
- Rossen Stoyanchev
- 関連事項:
ネストされたクラスの要約
ネストされたクラス修飾子と型インターフェース説明static interfaceErrorResponseのビルダー。static interfaceRFC-9457ProblemDetailレスポンスがレンダリングされる前にアクションを実行するコールバック。メソッドのサマリー
修飾子と型メソッド説明static ErrorResponse.Builderbuilder(ThrowableSE ex, HttpStatusCode statusCode, StringSE detail) ErrorResponseインスタンスを作成するビルダーを返します。static ErrorResponse.Builderbuilder(ThrowableSE ex, ProblemDetail problemDetail) カスタムProblemDetailインスタンスで使用するbuilder(Throwable, HttpStatusCode, String)のバリアント。static ErrorResponsecreate(ThrowableSE ex, HttpStatusCode statusCode, StringSE detail) builder(Throwable, HttpStatusCode, String)を介してインスタンスを構築する静的ファクトリメソッド。getBody()レスポンスの本文を返します。これは、statusがレスポンスステータスと一致する RFC 9457ProblemDetailとしてフォーマットされます。static StringSEgetDefaultDetailMessageCode(ClassSE<?> exceptionType, StringSE suffix) 指定された例外型の「詳細」フィールドのメッセージコードを作成します。static StringSEgetDefaultTitleMessageCode(ClassSE<?> exceptionType) 指定された例外型の「タイトル」フィールドのメッセージコードを作成します。static StringSEgetDefaultTypeMessageCode(ClassSE<?> exceptionType) 指定された例外型の「型」フィールドのメッセージコードを作成します。default ObjectSE[]MessageSourceを介してこの例外の問題の「詳細」を解決するためにmessage codeと共に使用する引数を返します。default ObjectSE[]getDetailMessageArguments(MessageSource messageSource, LocaleSE locale) メッセージ引数値を解決するために指定されたMessageSourceを使用するgetDetailMessageArguments()のバリアント。default StringSEMessageSourceを介して、この例外の問題「詳細」を解決するために使用するコードを返します。default HttpHeadersレスポンスに使用するヘッダーを返します。レスポンスに使用する HTTP ステータスコードを返します。default StringSEMessageSourceを介して、この例外の問題「タイトル」を解決するために使用するコードを返します。default StringSEMessageSourceを通じて、この例外の問題の「型」を解決するために使用するコードを返します。default ProblemDetailupdateAndGetBody(MessageSource messageSource, LocaleSE locale)
メソッドの詳細
getStatusCode
HttpStatusCode getStatusCode()レスポンスに使用する HTTP ステータスコードを返します。getHeaders
レスポンスに使用するヘッダーを返します。getBody
ProblemDetail getBody()レスポンスの本文を返します。これは、statusがレスポンスステータスと一致する RFC 9457ProblemDetailとしてフォーマットされます。注意 : 返された
ProblemDetailは、レスポンスがレンダリングされる前に、たとえばupdateAndGetBody(MessageSource, Locale)を介して更新される可能性があります。実装メソッドではインスタンスフィールドを使用する必要があり、呼び出しごとにProblemDetailを再作成したり、静的変数を使用したりしないでください。getTypeMessageCode
MessageSourceを通じて、この例外の問題の「型」を解決するために使用するコードを返します。MessageSourceを通じて解決された型はURI.create(String)SE に渡されるため、エンコードされた URI 文字列である必要があります。デフォルトでは、これは
getDefaultTypeMessageCode(Class)によって初期化されます。- 導入:
- 6.1
getTitleMessageCode
MessageSourceを介して、この例外の問題「タイトル」を解決するために使用するコードを返します。デフォルトでは、これは
getDefaultTitleMessageCode(Class)によって初期化されます。getDetailMessageCode
MessageSourceを介して、この例外の問題「詳細」を解決するために使用するコードを返します。デフォルトでは、これは
getDefaultDetailMessageCode(Class, String)によって初期化されます。getDetailMessageArguments
MessageSourceを介してこの例外の問題「詳細」を解決するためにmessage codeと一緒に使用する引数を返します。引数は、メッセージ値のプレースホルダーに展開されます (例: 「無効なコンテンツ型 {0}」)。getDetailMessageArguments
@Nullable default ObjectSE[] getDetailMessageArguments(MessageSource messageSource, LocaleSE locale) メッセージ引数値を解決するために指定されたMessageSourceを使用するgetDetailMessageArguments()のバリアント。これは、検証エラーからメッセージコードを展開する場合などに役立ちます。
デフォルトの実装は、指定された
MessageSourceおよびLocaleを無視して、getDetailMessageArguments()に委譲します。- パラメーター:
messageSource- ルックアップに使用するMessageSourcelocale- ルックアップに使用するLocale
updateAndGetBody
- パラメーター:
messageSource- ルックアップに使用するMessageSourcelocale- ルックアップに使用するLocale
getDefaultTypeMessageCode
指定された例外型の「型」フィールドのメッセージコードを作成します。- パラメーター:
exceptionType- 問題に関連する例外型- 戻り値:
"problemDetail.type."の後に完全に修飾されたclass nameが続く- 導入:
- 6.1
getDefaultTitleMessageCode
指定された例外型の「タイトル」フィールドのメッセージコードを作成します。- パラメーター:
exceptionType- 問題に関連する例外型- 戻り値:
"problemDetail.title."の後に完全に修飾されたclass nameが続く
getDefaultDetailMessageCode
指定された例外型の「詳細」フィールドのメッセージコードを作成します。- パラメーター:
exceptionType- 問題に関連する例外型suffix- オプションの接尾辞。たとえば、異なる引数を持つ複数のエラーメッセージを持つ可能性がある例外の場合など- 戻り値:
"problemDetail."の後に完全修飾class nameとオプションのサフィックスが続く
create
builder(Throwable, HttpStatusCode, String)を介してインスタンスを構築する静的ファクトリメソッド。builder
ErrorResponseインスタンスを作成するビルダーを返します。- パラメーター:
ex- エラーレスポンスにつながる根本的な例外。主に、詳細メッセージコードとタイトルメッセージコードのデフォルト値を導出します。statusCode- レスポンスに設定するステータスコードdetail-getDetailMessageCode()を使用したMessageSourceルックアップによってオーバーライドされない限り、detailフィールドのデフォルト値
builder
カスタムProblemDetailインスタンスで使用するbuilder(Throwable, HttpStatusCode, String)のバリアント。- 導入:
- 6.1