Class MethodArgumentNotValidException

java.lang.Object
java.lang.Throwable
java.lang.Exception
org.springframework.validation.BindException
org.springframework.web.bind.MethodArgumentNotValidException
All Implemented Interfaces:
Serializable, org.springframework.validation.BindingResult, org.springframework.validation.Errors, ErrorResponse

public class MethodArgumentNotValidException extends org.springframework.validation.BindException implements ErrorResponse
Exception to be thrown when validation on an argument annotated with @Valid fails. Extends BindException as of 5.3.
Since:
3.1
Author:
Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze
See Also:
  • Constructor Details

    • MethodArgumentNotValidException

      public MethodArgumentNotValidException(org.springframework.core.MethodParameter parameter, org.springframework.validation.BindingResult bindingResult)
      Parameters:
      parameter - the parameter that failed validation
      bindingResult - the results of the validation
    • MethodArgumentNotValidException

      @Deprecated(since="6.0.10", forRemoval=true) public MethodArgumentNotValidException(Executable executable, org.springframework.validation.BindingResult bindingResult)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Parameters:
      executable - the executable that failed validation
      bindingResult - the results of the validation
      Since:
      6.0.5
  • Method Details

    • getStatusCode

      public HttpStatusCode getStatusCode()
      Description copied from interface: ErrorResponse
      Return the HTTP status code to use for the response.
      Specified by:
      getStatusCode in interface ErrorResponse
    • getBody

      public ProblemDetail getBody()
      Description copied from interface: ErrorResponse
      Return the body for the response, formatted as an RFC 7807 ProblemDetail whose status should match the response status.
      Specified by:
      getBody in interface ErrorResponse
    • getParameter

      public final org.springframework.core.MethodParameter getParameter()
      Return the method parameter that failed validation.
    • getMessage

      public String getMessage()
      Overrides:
      getMessage in class org.springframework.validation.BindException
    • getDetailMessageArguments

      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, e.g. "Invalid content type {0}".
      Specified by:
      getDetailMessageArguments in interface ErrorResponse
    • getDetailMessageArguments

      public Object[] getDetailMessageArguments(org.springframework.context.MessageSource messageSource, Locale locale)
      Description copied from interface: ErrorResponse
      Variant of ErrorResponse.getDetailMessageArguments() that uses the given MessageSource for resolving the message argument values.

      This is useful for example to expand message codes from validation errors.

      The default implementation delegates to ErrorResponse.getDetailMessageArguments(), ignoring the supplied MessageSource and Locale.

      Specified by:
      getDetailMessageArguments in interface ErrorResponse
      Parameters:
      messageSource - the MessageSource to use for the lookup
      locale - the Locale to use for the lookup
    • resolveErrorMessages

      public Map<org.springframework.validation.ObjectError,String> resolveErrorMessages(org.springframework.context.MessageSource messageSource, Locale locale)
      Resolve global and field errors to messages with the given MessageSource and Locale.
      Returns:
      a Map with errors as key and resolved messages as value
      Since:
      6.0.3
    • errorsToStringList

      public static List<String> errorsToStringList(List<? extends org.springframework.validation.ObjectError> errors)
      Convert each given ObjectError to a String in single quotes, taking either the error's default message, or its error code.
      Since:
      6.0
    • errorsToStringList

      public static List<String> errorsToStringList(List<? extends org.springframework.validation.ObjectError> errors, @Nullable org.springframework.context.MessageSource source, Locale locale)
      Variant of errorsToStringList(List) that uses a MessageSource to resolve the message code of the error, or fall back on the error's default message.
      Since:
      6.0