I can see what you mean, but there is the pain of getting back into the JSF "domain" after being thrown out of it by the exception. The error page I want to display is a JSF page (the problem of using Facelets is that you want to use them for everything!). You then need to add things to the FacesContext, which I know is not easily accessible from a Filter. You then need to do things like adding the exception (or extracts from it) to the session.
Not to mention that if you have your project stage as "Development", you don't get the exceptions anyway from the filter.
The filter seems a better option. I tried using a JSF page as my error page, and all that does is cause a different exception (well, it's rewrapped). I guess there's an error trying to go back into JSF when JSF threw the error in the first place.
[Message sent by forum member 'hirowla' (ian.rowlands_at_three.com.au)]
http://forums.java.net/jive/thread.jspa?messageID=384639