以通用方式处理它的唯一方法是使用
web.xml如下所示:
<error-page> <exception-type>java.lang.Throwable</exception-type> <location>/ErrorHandler</location></error-page>
抛出servlet
ServletException,
IOException但是如果您想在单个异常处理程序中处理运行时异常和所有其他异常,则可以将异常类型提供为
Throwable。您可以使用多个错误页面条目,这些条目将处理不同类型的异常并具有不同的处理程序。
例:
@WebServlet("/ErrorHandler")public class ErrorHandler extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processError(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processError(request, response); } private void processError(HttpServletRequest request, HttpServletResponse response) throws IOException { //customize error message Throwable throwable = (Throwable) request .getAttribute("javax.servlet.error.exception"); Integer statusCode = (Integer) request .getAttribute("javax.servlet.error.status_pre"); String servletName = (String) request .getAttribute("javax.servlet.error.servlet_name"); if (servletName == null) { servletName = "Unknown"; } String requestUri = (String) request .getAttribute("javax.servlet.error.request_uri"); if (requestUri == null) { requestUri = "Unknown"; } request.setAttribute("error", "Servlet " + servletName +" has thrown an exception " + throwable.getClass().getName() + " : " + throwable.getMessage()); request.getRequestDispatcher("/ErrorPage.jsp").forward(request, response); }}


