title: ResponsEentityExceptionHandler: handleMethodArgumentNotValid Not Intercepted
body: <p>My controller has the following method:</p>
  
  <pre><code>@RequestMapping(method = RequestMethod.POST)
  @ResponseStatus(HttpStatus.CREATED)
  public void save(@RequestBody @Valid final User resource) {
      createInternal(resource);
  }
  </code></pre>
  
  <p>Because of the @Valid before the resource parameter, I expect it to be intercepted by the following exception handler when I pass in a <code>NULL</code> into a <code>nullable=false</code> on my @Column of my entity,</p>
  
  <pre><code>@Override
  protected final ResponseEntity&lt;Object&gt; handleMethodArgumentNotValid(final MethodArgumentNotValidException e,                                     
                                                                      final HttpHeaders headers, 
                                                                      final HttpStatus status, 
                                                                      final WebRequest request) {
      log.info("Bad Request: {}", ex.getMessage());
      log.debug("Bad Request: ", ex);
  
      ...
  
      return handleExceptionInternal(e, dto, headers, HttpStatus.BAD_REQUEST, request);
  }
  </code></pre>
  
  <p>But it seems I can only handle it this way instead:</p>
  
  <pre><code>@ExceptionHandler(value = { ConstraintViolationException.class,  
                              DataIntegrityViolationException.class })
  public final ResponseEntity&lt;Object&gt; handleBadRequest(final RuntimeException e,
                                                       final WebRequest request) {
      ...
      return handleExceptionInternal(ex, apiError, new HttpHeaders(), HttpStatus.BAD_REQUEST, request);
  }
  </code></pre>
  
  <p>Why isn't the <code>handleMethodArgumentNotValid</code> exception handler picking it up like it should?</p>