我想在发生错误时将用户发送到一个错误页面,无论是404,500 ...等。我在web.xml中使用了错误代码但是我想要捕获java.lang.Throwable的所有实例,因为我相信任何错误都是java.lang.Throwable的子类。此外,当我使用错误代码方案时,堆栈跟踪不再出现在Tomcat的catlina.out中......任何想法?我不确定JSF2的ExceptionHandler API是否处理了404s?
<error-page>
<error-code>404</error-code>
<location>/pageNotFound.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/systemError.html</location>
</error-page>
答案 0 :(得分:1)
当我使用错误代码方案时,堆栈跟踪不再出现在Tomcat的catlina.out中了
这不是标准行为。你的问题是由别的东西引起的。也许这是错误的测试方法,或者你可能会抑制异常并手动重定向某些Filter
或类似内容。根据提供的信息,这是不可能回答的。
我不确定JSF2的ExceptionHandler API是否处理了404s?
取决于。如果请求URL与FacesServlet
匹配,则默认情况下会抛出FileNotFoundException
,最终以HTTP 500结尾。如果请求URL与FacesServlet
或任何其他servlet不匹配,然后servlet容器将它作为HTTP 404处理。