Spring MVC请求正文错误处理

bre*_*ish 6 error-handling spring http spring-mvc bad-request

在使用@RequestBody StreamSourcefind out时,如果请求体中的xml无效StreamSource则会抛出异常(导致400 Bad Request)并且我无法处理它(告诉客户端什么是坏的).

有没有办法处理这种异常?

dan*_*nik 10

一般来说,您可以通过以下方式捕获Spring MVC中的异常:

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

您可以将其映射到任何异常时间,并将用户重定向到任何具有任何消息的页面.

或者:您可以将其退回@ResponseBody:

  @ExceptionHandler(Exception.class)
  @ResponseBody
  public String handleMyException(Exception  exception) {
      return exception.getMessage();
  } 
Run Code Online (Sandbox Code Playgroud)