Are you missing the standard error-page/exception-type configuration option specified by the servlet spec? For some rarely occurring exceptions, it's simpler to just catch them at the outermost layer of your application rather than carry a typed exception through multiple layers of abstractions just so you could show a sensible error message to the user, especially if you can't do anything more clever about it anyway. Unfortunately Tapestry wraps up all of your exceptions inside a ComponentEventException making the error-page/exception-type configuration in your web.xml useless. The default Tapestry exception page is great for development but typically, you don't want to show that in production.
The servlet spec, as always, is rather restrictive in regards to error-page configuration. If your email service or an external payment service goes down, you can't do much more than display an error message to the user, so why would you need to implement separate pages for each exception? Often, it'd be nicer if you could just reuse the page template for any fatal exception but simply display a different error message. Tapestry-exceptionpage allows you to contribute handlers for specific types of exceptions and provide context for rendering the error page for for that specific exception.
You can contribute an error page, mapping it to an exception type:
If Exception.getMessage() is not null (which it is by default), the implementation will use the messge as the redirect context. For example, you have a following class:
If your custom-handled exception implements the interface ContextAwareException you can fully specify the context for the error page.