Interface ErrorResponse
- All Known Implementing Classes:
- AsyncRequestTimeoutException,- ErrorResponseException,- HandlerMethodValidationException,- HttpMediaTypeException,- HttpMediaTypeNotAcceptableException,- HttpMediaTypeNotSupportedException,- HttpRequestMethodNotSupportedException,- MaxUploadSizeExceededException,- MethodArgumentNotValidException,- MethodNotAllowedException,- MissingMatrixVariableException,- MissingPathVariableException,- MissingRequestCookieException,- MissingRequestHeaderException,- MissingRequestValueException,- MissingRequestValueException,- MissingServletRequestParameterException,- MissingServletRequestPartException,- NoHandlerFoundException,- NoResourceFoundException,- NoResourceFoundException,- NotAcceptableStatusException,- ResponseStatusException,- ServerErrorException,- ServerWebInputException,- ServletRequestBindingException,- UnsatisfiedRequestParameterException,- UnsatisfiedServletRequestParameterException,- UnsupportedMediaTypeStatusException,- WebExchangeBindException
ProblemDetail body. Allows any
 exception to expose HTTP error response information.
 ErrorResponseException is a default implementation of this
 interface and a convenient base class for other exceptions to use.
 
ErrorResponse is supported as a return value from
 @ExceptionHandler methods that render directly to the response, e.g.
 by being marked @ResponseBody, or declared in an
 @RestController or RestControllerAdvice class.
- Since:
- 6.0
- Author:
- Rossen Stoyanchev
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeInterfaceDescriptionstatic interfaceBuilder for anErrorResponse.
- 
Method SummaryModifier and TypeMethodDescriptionstatic ErrorResponse.Builderbuilder(Throwable ex, HttpStatusCode statusCode, String detail) Return a builder to create anErrorResponseinstance.static ErrorResponse.Builderbuilder(Throwable ex, ProblemDetail problemDetail) Variant ofbuilder(Throwable, HttpStatusCode, String)for use with a customProblemDetailinstance.static ErrorResponsecreate(Throwable ex, HttpStatusCode statusCode, String detail) Static factory method to build an instance viabuilder(Throwable, HttpStatusCode, String).getBody()Return the body for the response, formatted as an RFC 7807ProblemDetailwhosestatusshould match the response status.static StringgetDefaultDetailMessageCode(Class<?> exceptionType, String suffix) Build a message code for the "detail" field, for the given exception type.static StringgetDefaultTitleMessageCode(Class<?> exceptionType) Build a message code for the "title" field, for the given exception type.static StringgetDefaultTypeMessageCode(Class<?> exceptionType) Build a message code for the "type" field, for the given exception type.default Object[]Return arguments to use along with amessage codeto resolve the problem "detail" for this exception through aMessageSource.default Object[]getDetailMessageArguments(MessageSource messageSource, Locale locale) Variant ofgetDetailMessageArguments()that uses the givenMessageSourcefor resolving the message argument values.default StringReturn a code to use to resolve the problem "detail" for this exception through aMessageSource.default HttpHeadersReturn headers to use for the response.Return the HTTP status code to use for the response.default StringReturn a code to use to resolve the problem "title" for this exception through aMessageSource.default StringReturn a code to use to resolve the problem "type" for this exception through aMessageSource.default ProblemDetailupdateAndGetBody(MessageSource messageSource, Locale locale) Use the givenMessageSourceto resolve thetype,title, anddetailmessage codes, and then use the resolved values to update the corresponding fields ingetBody().
- 
Method Details- 
getStatusCodeHttpStatusCode getStatusCode()Return the HTTP status code to use for the response.
- 
getHeadersReturn headers to use for the response.
- 
getBodyProblemDetail getBody()Return the body for the response, formatted as an RFC 7807ProblemDetailwhosestatusshould match the response status.
- 
getTypeMessageCodeReturn a code to use to resolve the problem "type" for this exception through aMessageSource. The type resolved through theMessageSourcewill be passed intoURI.create(String)and therefore must be an encoded URI String.By default this is initialized via getDefaultTypeMessageCode(Class).- Since:
- 6.1
 
- 
getTitleMessageCodeReturn a code to use to resolve the problem "title" for this exception through aMessageSource.By default this is initialized via getDefaultTitleMessageCode(Class).
- 
getDetailMessageCodeReturn a code to use to resolve the problem "detail" for this exception through aMessageSource.By default this is initialized via getDefaultDetailMessageCode(Class, String).
- 
getDetailMessageArgumentsReturn arguments to use along with amessage codeto resolve the problem "detail" for this exception through aMessageSource. The arguments are expanded into placeholders of the message value, e.g. "Invalid content type {0}".
- 
getDetailMessageArgumentsVariant ofgetDetailMessageArguments()that uses the givenMessageSourcefor resolving the message argument values.This is useful for example to expand message codes from validation errors. The default implementation delegates to getDetailMessageArguments(), ignoring the suppliedMessageSourceandLocale.- Parameters:
- messageSource- the- MessageSourceto use for the lookup
- locale- the- Localeto use for the lookup
 
- 
updateAndGetBodyUse the givenMessageSourceto resolve thetype,title, anddetailmessage codes, and then use the resolved values to update the corresponding fields ingetBody().- Parameters:
- messageSource- the- MessageSourceto use for the lookup
- locale- the- Localeto use for the lookup
 
- 
getDefaultTypeMessageCodeBuild a message code for the "type" field, for the given exception type.- Parameters:
- exceptionType- the exception type associated with the problem
- Returns:
- "problemDetail.type."followed by the fully qualified- class name
- Since:
- 6.1
 
- 
getDefaultTitleMessageCodeBuild a message code for the "title" field, for the given exception type.- Parameters:
- exceptionType- the exception type associated with the problem
- Returns:
- "problemDetail.title."followed by the fully qualified- class name
 
- 
getDefaultDetailMessageCodeBuild a message code for the "detail" field, for the given exception type.- Parameters:
- exceptionType- the exception type associated with the problem
- suffix- an optional suffix, e.g. for exceptions that may have multiple error message with different arguments
- Returns:
- "problemDetail."followed by the fully qualified- class nameand an optional suffix
 
- 
createStatic factory method to build an instance viabuilder(Throwable, HttpStatusCode, String).
- 
builderReturn a builder to create anErrorResponseinstance.- Parameters:
- ex- the underlying exception that lead to the error response; mainly to derive default values for the detail message code and for the title message code.
- statusCode- the status code to set in the response
- detail- the default value for the- detailfield, unless overridden by a- MessageSourcelookup with- getDetailMessageCode()
 
- 
builderVariant ofbuilder(Throwable, HttpStatusCode, String)for use with a customProblemDetailinstance.- Since:
- 6.1
 
 
-