基幹系業務システムでは割とお約束(なのかな?)の「致命的なエラー発生時、ユーザへスタックトレース等の詳細な情報画面を出さず、わかりやすいエラー画面を出す(でも絶対ログには詳細出す!)」を実装せねば、ということでCore JavaServer Faces本に教えてもらいました。
web.xmlに
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error/exceptionError.xhtml</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/notFoundError.xhtml</location>
</error-page>
振り分けのルールなどは別途決めないといけないですが、割とシンプルです。
あとは本の例にあるようにエラー用の管理Bean定義して、RequestMapからの情報をロギングしたほうがよさそうかな。