【发布时间】:2010-10-22 20:43:16
【问题描述】:
这个问题可能过于含糊,但我正在寻找有关处理 JavaServer Faces 应用程序中异常的一些帮助或最佳实践。
现在,每当我捕获到异常时,我都会记录它,然后抛出我创建的另一个异常,例如 MyCustomException。此自定义异常采用捕获的Throwable 对象并将堆栈跟踪通过电子邮件发送给我,以便我知道发生了异常。目前,这似乎对我有用,只要在发生异常时得到通知。
但是,我遇到的麻烦是如何向用户显示一个漂亮的错误页面,让他们知道出现问题并且我已收到错误通知。在进行一些搜索时,我遇到了几篇文章,这些文章展示了如何使用类似于以下内容将用户重定向到另一个页面:
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext extContext = context.getExternalContext();
String url = extContext.encodeActionURL(extContext.getRequestContextPath() +
"/messages.faces");
extContext.redirect(url);
但是对于每个捕获的异常,基本上复制和粘贴似乎相当多,这并不完全遵循 DRY 原则。最后,我想我想做的是在发生异常时向我发送一封电子邮件,然后能够将消息发送到通用错误页面,然后将消息显示给用户。
我应该遵循什么想法或最佳实践?提前感谢您提供的任何建议!我被难住了。
注意:如果有帮助,我正在使用 JSF 2.0 和 Facelets。
【问题讨论】: