Spring MVC Обработка ошибок в теле запроса - PullRequest
6 голосов
/ 30 мая 2011

При использовании @RequestBody StreamSource выяснилось, что если xml в теле запроса в недопустимом StreamSource выдает исключение (в результате 400 неправильных запросов), и я не могу его обработать (скажите клиенту, чтоплохо).

Есть ли способ обработать такое исключение?

1 Ответ

10 голосов
/ 30 мая 2011

В общем случае вы можете перехватить исключение в Spring MVC следующим образом:

@ExceptionHandler(Exception.class)
public ModelAndView handleMyException(Exception  exception) {
    ModelAndView modelAndView = new ModelAndView("/errors/404");
    modelAndView.addObject("message", exception.getMessage());
    return modelAndView;
} 

Вы можете сопоставить его с любым временем исключения и перенаправить пользователя на любую страницу с любым сообщением.

В качестве альтернативы:Вы можете вернуть его в @ResponseBody:

  @ExceptionHandler(Exception.class)
  @ResponseBody
  public String handleMyException(Exception  exception) {
      return exception.getMessage();
  } 
...