Я использую Spring 3.2.1 и имею команду PropertyEditorSupport
, чтобы заставить параметр, который я хотел бы автоконвертировать в перечисление в верхний регистр, чтобы он преобразовывал неверные параметры. IllegalArgumentException
может быть сброшен, если параметр String не может быть преобразован в перечисление. Моя проблема заключается в том, что код состояния возвращается как 500, когда ему должно быть 400. Я создал ResponseEntityExceptionHandler
с аннотацией @ControllerAdvice
и с помощью метода annotated @ExceptionHandler (IllegalArgumentException.class)
, намеревающегося установить там код состояния, но метод никогда не вызывается, когда исключение выброшены. Почему нет? Это та же проблема, что обсуждалось здесь, MaxUploadSizeExceededException doesn't invoke the exception handling method in Spring? т.е.ControllerAdvice ExceptionHandler не вызывается из PropertyEditorSupport
»... исключение брошено, прежде чем запрос достиг диспетчерской сервлета. Поэтому ваш ExceptionHandler не называется , потому что в момент исключение целевого контроллера имеет еще предстоит определить «.
Если да, то как я могу вернуть правильный код состояния?