Как настроить spring HandlerExceptionResolver для обработки исключения NullPointerException, вызванного в jsp?

#spring #jsp #exception-handling

Вопрос:

Из jsp выбрасывается исключение NullPointerException, например, с помощью <% null.toString(); %>

Это исключение не обрабатывается параметром HandlerExceptionResolver, а передается в веб-контейнер(tomcat) и преобразуется в a code 500 error .

Как я могу настроить spring, чтобы получить эту ошибку в моем HandlerExceptionResolver ?

Подробные сведения:

  • Spring можно настроить для обработки исключений, создаваемых внутри контроллеров, но не исключений, создаваемых представлением.
  • Конечно, я могу устранить исключение NullPointerException, но я хочу разработать решение, которое изящно разрешит любую возможную проблему в веб-приложении, чтобы отобразить удобное для пользователя сообщение.

Ответ №1:

Ответ №2:

Я не работал с этой конкретной частью фреймворка spring, но в документах говорится

«Интерфейс, реализуемый объектами, который может разрешать исключения, возникающие во время сопоставления или выполнения обработчика, в типичном случае для представлений ошибок. Разработчики обычно регистрируются как компоненты в контексте приложения.

Представления ошибок аналогичны JSP страницы ошибок, но могут использоваться с любыми исключениями, включая любые проверенные исключения, с потенциально детализированными отображениями для конкретных обработчиков».

поэтому я бы предположил, что, учитывая, что NullPointer расширяет исключение RuntimeException, фреймворк не предназначен для его улавливания. Есть ли причина, по которой исключение(исключения) не может быть обработано непосредственно в контроллере?

Комментарии:

1. @Steve_B Проблема здесь в том, что ошибка возникает во время обработки представления — контроллер уже был выведен из строя.