У меня есть Servlet API, где я использовал, чтобы бросить свои собственные исключения из сервлеты уровняобработчик исключений работает для doGet(), но не для doPost()
Когда я бросаю исключение из метода doGet все работает отлично и исключение обработчика улавливает и обрабатывает мое исключение. проблема возникает, когда я бросаю исключение из метода doPost. в данном случае к сожалению, я никогда не видел страница ошибки
web.xml
<error-page>
<exception-type>java.lang.Throwable</exception-type >
<location>/ErrorHandler</location>
</error-page>
обработчика исключений
@WebServlet("/ErrorHandler")
public class ErrorHandler extends HttpServlet {
private final Logger logger;
public ErrorHandler() {
logger = Logger.getLogger(ErrorHandler.class);
}
@Override
public void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException, ServletException {
Throwable throwable = (Throwable) httpServletRequest.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
logger.error("occurred exception: ", throwable);
httpServletRequest.getRequestDispatcher("/error.jsp").forward(httpServletRequest, httpServletResponse);
}
}
Servlet
@Override
public void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException {
throw new UserException("error message");
}