Spring MVC 请求体错误处理

发布于 2024-11-11 15:56:05 字数 162 浏览 4 评论 0原文

在使用 @RequestBody StreamSource 时发现,如果请求正文中的 xml 无效 StreamSource 会抛出异常(导致 400 Bad Request)并且我无法处理它(告诉客户哪里不好)。

有没有办法处理这样的异常?

While using @RequestBody StreamSource found out, that if xml in request body in not valid StreamSource throws an Exception(resulting in 400 Bad Request) and i'm not able to handle it(tell client what is bad).

Is there a way to handle such exception?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好久不见√ 2024-11-18 15:56:06

一般来说,您可以通过这种方式捕获 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();
  } 

In general You can catch exception in Spring MVC that way:

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

You can map it to any exception time and redirect user to any page with any mesage.

Alternatively: you can return it in @ResponseBody:

  @ExceptionHandler(Exception.class)
  @ResponseBody
  public String handleMyException(Exception  exception) {
      return exception.getMessage();
  } 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文