2016-08-18 10 views
0

Я использую Formatter s и Converter s в моем веб-приложении Spring MVC. Есть ли способ поймать ConversionFailedException? Я хочу сделать что-то еще, вместо того, чтобы наброситься на страницу JasperException.Как перехватить исключение преобразования?

Обратите внимание: я не использую напрямую Formatter или Converter. I configured Spring сделать это для меня, как-то. Таким образом, в форме у меня есть String, но с помощью зарегистрированного ConversionService он возвращается к параметру @ModelAttribute моего контроллера в качестве объекта.

ответ

2

Вы можете использовать @ExceptionHandler, добавить его в свой класс

@ExceptionHandler(ConversionFailedException.class) 
public void handleError(ConversionFailedException ex) { 
    // handle the exception 
} 

Reference

+0

Ах. Я понимаю, что это первое, что приходит на ум, но я напрямую не использую «Formatter» или «Конвертер». Я [настроил Spring] (http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#core-convert-Spring-config), чтобы сделать это для меня каким-то образом. Таким образом, в форме у меня есть строка «String», но с использованием зарегистрированного «ConversionService», он возвращается к аннотированному параметру «@ ModelAttribute» моего контроллера как к объекту. –

+0

@Kid Я отредактировал мой ответ – Guy

+0

@Guy Я попробую это через несколько минут! Благодарим за ваше предложение. Я дам вам знать, если это сработает. –

1

Простой блок try/catch должен работать.

try { 
    // piece of code that throws the exception... 
} catch (ConversionFailedException exception) { 
    // you have caught the exception, do whatever you want here... 
} 
+0

См. [Мой комментарий] (http://stackoverflow.com/questions/39016477/how-to-catch-conversionfailedexception/39016529#comment65383521_39016529). –

0

Создайте свой собственный ConversionService простирающуюся по умолчанию один и переопределить метод convert поймать ошибку преобразования и вместо того, чтобы обеспечить требуемое поведение (например, запись ошибки преобразования).

+0

Ох. Это очень хорошее предложение и является жизнеспособным вариантом для таких людей, как я, однако «Конвертеры не только используются в веб-приложениях. В моем случае я хотел бы добавить специальное исключение, которое в значительной степени представляет ошибку 404. Это не будет хорошим местом для исключения. Но я понимаю вашу идею. Спасибо. –