Почему Spring переносит RuntimeException в NestedServletException, когда обрабатывает исключение конечной точки? - PullRequest
1 голос
/ 25 сентября 2019

Согласно Спецификация сервлета :

Сервлет или фильтр могут выдавать следующие исключения при обработке запроса:

  1. исключения времени выполнения илиошибки
  2. Исключения Servlet или их подклассы
  3. Исключения IO или их подклассы

Если мы посмотрим на org.springframework.web.servlet.FrameworkServlet#processRequest, мы увидим, что Spring выбрасывает ServletException и IOException, но включает другие, включая 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);
}

Почему Spring не обрабатывает RuntimeException как IOException?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...