全局处理JSF2中的异常

时间:2011-09-07 17:29:48

标签: java-ee jsf-2

我想在发生错误时将用户发送到一个错误页面,无论是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>

1 个答案:

答案 0 :(得分:1)

  

当我使用错误代码方案时,堆栈跟踪不再出现在Tomcat的catlina.out中了

这不是标准行为。你的问题是由别的东西引起的。也许这是错误的测试方法,或者你可能会抑制异常并手动重定向某些Filter或类似内容。根据提供的信息,这是不可能回答的。


  

我不确定JSF2的ExceptionHandler API是否处理了404s?

取决于。如果请求URL与FacesServlet匹配,则默认情况下会抛出FileNotFoundException,最终以HTTP 500结尾。如果请求URL与FacesServlet或任何其他servlet不匹配,然后servlet容器将它作为HTTP 404处理。