错误处理程序 Servlet:如何获取异常原因
我的 Web 中配置了一个错误 servlet.xml:
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/ExceptionHandler</location>
</error-page>
右?
在我的(一般)servlet中:
doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
...
...
} catch (Exception e) {
throw new ServletException("some mesage", e);
}
}
因此,在这种情况下,“e”将是根本原因。
在我的 ExceptionHandler 类中,我有:
doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Throwable throwable = (Throwable) request.getAttribute("javax.servlet.error.exception");
throwable.getCause() //NULL
}
这就是问题所在。throwable.getCause() 为 null。