6

在使用@RequestBody StreamSource发现时,如果请求正文中的 xml 无效StreamSource会引发异常(导致 400 错误请求)并且我无法处理它(告诉客户端什么是错误的)。

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

4

1 回答 1

10

一般来说,您可以通过这种方式在 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();
  } 
于 2011-05-30T11:28:40.860 回答