Spring MVC Best Practice Обработка неисправимых исключений в контроллере - PullRequest
3 голосов
/ 29 марта 2010

Если у вас есть контроллер, который выполняет логику со службами, и DAO, которые могут выдавать неисправимое исключение, какова лучшая практика при работе с этими вызовами методов?

В настоящее время приложение, над которым я работаю, имеет оченьдлинная попытка поймать методы, которые просто выводят сообщения об исключениях, это не кажется очень надежным, и я думаю, что этот код пахнет, есть ли лучший метод для обработки печенья для обработки этого в spring-mvc?

Ответы [ 2 ]

8 голосов
/ 29 марта 2010

Не перехватывайте исключение и не позволяйте ему всплывать до HandlerExceptionResolver .

Вы можете предоставить SimpleMappingExceptionResolver в вашем applicationContext для сопоставления определенных типов исключений (или всех) с именем представления (например, «страница ошибки»). Или, если вам нужна более сложная логика, вы можете предоставить собственную реализацию.

Таким образом, ваш код не связан с исключениями, которые он не может обработать в первую очередь, и вы можете быть уверены, что ваши пользователи увидят приятное: «Ой, что-то случилось, не волнуйтесь, мы на нем» страница вместо стека трассировки.

6 голосов
/ 29 марта 2010

Проверьте @ ExceptionHandler

Вы можете использовать его как

@ExceptionHandler(IOException.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public void handleExc(IOException ext) {}

Это перехватит все IOException, выданные методом контроллера, и запишет 500 к ответу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...