为什么春天包装的RuntimeException在NestedServletException当手柄

2019-10-16 12:59发布

根据Servlet规范 :

一个servlet或过滤器可以请求的处理过程中抛出以下例外:

  1. 运行时异常或错误
  2. ServletExceptions或其亚类
  3. 的IOExceptions或其亚类

如果我们看一下org.springframework.web.servlet.FrameworkServlet#processRequest ,我们将看到Spring抛出ServletExceptionIOException ,但其他包装包括RuntimeExceptions

try {
    doService(request, response);
} catch (ServletException | IOException ex) {
    failureCause = ex;
    throw ex;
} catch (Throwable ex) {
    failureCause = ex;
    throw new NestedServletException("Request processing failed", ex);
}

为什么没有春天处理RuntimeExceptionIOException

文章来源: Why does Spring wrap RuntimeException in NestedServletException when handle endpoint exception?