Package org.springframework.web

# Class HttpMediaTypeException

java.lang.Object
java.lang.Throwable
java.lang.Exception
jakarta.servlet.ServletException
org.springframework.web.HttpMediaTypeException

All Implemented Interfaces:
  `Serializable`, `ErrorResponse`

Direct Known Subclasses:
  `HttpMediaTypeNotAcceptableException`, `HttpMediaTypeNotSupportedException`

public abstract class HttpMediaTypeException extends ServletException implements ErrorResponse
Abstract base for exceptions related to media types. Adds a list of supported `MediaTypes`.

Since:
  3.0
Author:
  Arjen Poutsma
See Also:
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.springframework.web.ErrorResponse

`ErrorResponse.Builder, ErrorResponse.Interceptor`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`HttpMediaTypeException(String message)`
Deprecated.
as of 6.0
`protected`
`HttpMediaTypeException(String message, List<MediaType> supportedMediaTypes)`
Deprecated.
as of 6.0
`protected`
`HttpMediaTypeException(String message, List<MediaType> supportedMediaTypes, String messageDetailCode, Object[] messageDetailArguments)`
Create a new HttpMediaTypeException with a list of supported media types.

## Method Summary

Modifier and Type
Method
Description
`ProblemDetail`
`getBody()`
Return the body for the response, formatted as an RFC 9457 `ProblemDetail` whose `status` should match the response status.
`Object[]`
`getDetailMessageArguments()`
Return arguments to use along with a `message code` to resolve the problem "detail" for this exception through a `MessageSource`.
`String`
`getDetailMessageCode()`
Return a code to use to resolve the problem "detail" for this exception through a `MessageSource`.
`List<MediaType>`
`getSupportedMediaTypes()`
Return the list of supported media types.

### Methods inherited from class jakarta.servlet.ServletException

`getRootCause`

### Methods inherited from class java.lang.Throwable

`addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.web.ErrorResponse

`getDetailMessageArguments, getHeaders, getStatusCode, getTitleMessageCode, getTypeMessageCode, updateAndGetBody`

## Constructor Details

### HttpMediaTypeException

@Deprecated protected HttpMediaTypeException(String message)
Deprecated.
as of 6.0
Create a new HttpMediaTypeException.

Parameters:
  `message` - the exception message

### HttpMediaTypeException

@Deprecated protected HttpMediaTypeException(String message, List<MediaType> supportedMediaTypes)
Deprecated.
as of 6.0
Create a new HttpMediaTypeException with a list of supported media types.

Parameters:
  `supportedMediaTypes` - the list of supported media types

### HttpMediaTypeException

protected HttpMediaTypeException(@Nullable String message, List<MediaType> supportedMediaTypes, @Nullable String messageDetailCode, @Nullable Object[] messageDetailArguments)
Create a new HttpMediaTypeException with a list of supported media types.

Parameters:
  `supportedMediaTypes` - the list of supported media types
  `messageDetailCode` - the code to use to resolve the problem "detail" through a `MessageSource`
  `messageDetailArguments` - the arguments to make available when resolving the problem "detail" through a `MessageSource`
Since:
  6.0

## Method Details

### getSupportedMediaTypes

public List<MediaType> getSupportedMediaTypes()
Return the list of supported media types.

### getBody

public ProblemDetail getBody()
Description copied from interface: `ErrorResponse`
Return the body for the response, formatted as an RFC 9457 `ProblemDetail` whose `status` should match the response status.

Note: The returned `ProblemDetail` may be updated before the response is rendered, for example, via `ErrorResponse.updateAndGetBody(MessageSource, Locale)`. Therefore, implementing methods should use an instance field, and should not re-create the `ProblemDetail` on every call, nor use a static variable.

Specified by:
  `getBody` in interface `ErrorResponse`

### getDetailMessageCode

public String getDetailMessageCode()
Description copied from interface: `ErrorResponse`
Return a code to use to resolve the problem "detail" for this exception through a `MessageSource`.

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

Specified by:
  `getDetailMessageCode` in interface `ErrorResponse`

### getDetailMessageArguments

@Nullable public Object[] getDetailMessageArguments()
Description copied from interface: `ErrorResponse`
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, for example, "Invalid content type {0}".

Specified by:
  `getDetailMessageArguments` in interface `ErrorResponse`