Interface ErrorResponse

All Known Implementing Classes:
AsyncRequestTimeoutException, ErrorResponseException, HttpMediaTypeException, HttpMediaTypeNotAcceptableException, HttpMediaTypeNotSupportedException, HttpRequestMethodNotSupportedException, MethodArgumentNotValidException, MethodNotAllowedException, MissingMatrixVariableException, MissingPathVariableException, MissingRequestCookieException, MissingRequestHeaderException, MissingRequestValueException, MissingRequestValueException, MissingServletRequestParameterException, MissingServletRequestPartException, NoHandlerFoundException, NotAcceptableStatusException, ResponseStatusException, ServerErrorException, ServerWebInputException, ServletRequestBindingException, UnsatisfiedRequestParameterException, UnsatisfiedServletRequestParameterException, UnsupportedMediaTypeStatusException, WebExchangeBindException

public interface ErrorResponse
Representation of a complete RFC 7807 error response including status, headers, and an RFC 7808 formatted 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:
  • Method Details

    • getStatusCode

      HttpStatusCode getStatusCode()
      Return the HTTP status code to use for the response.
    • getHeaders

      default HttpHeaders getHeaders()
      Return headers to use for the response.
    • getBody

      ProblemDetail getBody()
      Return the body for the response, formatted as an RFC 7807 ProblemDetail whose status should match the response status.
    • getDetailMessageCode

      default String getDetailMessageCode()
      Return a code to use to resolve the problem "detail" for this exception through a MessageSource.

      By default this is initialized via getDefaultDetailMessageCode(Class, String).

    • getDetailMessageArguments

      @Nullable default Object[] getDetailMessageArguments()
      Return arguments to use along with a message code to resolve the problem "detail" for this exception through a MessageSource. The arguments are expanded into placeholders of the message value, e.g. "Invalid content type {0}".
    • getDetailMessageArguments

      @Nullable default Object[] getDetailMessageArguments(MessageSource messageSource, Locale locale)
      Variant of getDetailMessageArguments() that uses the given MessageSource for resolving the message argument values. This is useful for example to message codes from validation errors.
    • getDefaultDetailMessageCode

      static String getDefaultDetailMessageCode(Class<?> exceptionType, @Nullable String suffix)
      Build a message code for the given exception type, which consists of "problemDetail." followed by the full class name.
      Parameters:
      exceptionType - the exception type for which to build a code
      suffix - an optional suffix, e.g. for exceptions that may have multiple error message with different arguments.