java - 在 Java EE 5 Web应用程序中,异常处理指南

  显示原文与译文双语对照的内容
0 0

因为它必须是这样一个常见的问题,因这里在web上找到最佳实践是很困难的。

应用基于 java5 - JSF,带有 Faclets 。Seam 。JPA和 Hibernate 。 一些Web服务调用。一些 JMS 。

我在为异常处理提供一般建议。 有大约 3种方法我见过使用,但我从来没有确定哪一个更好。 假设你无法从错误中恢复,你是: 1 ) 当发生错误时记录错误并将它的抛出?
2 ) 当它发生时记录它,并抛出一些通用异常?
3 ) 让它冒泡,然后在一个通用异常处理servlet或者类似的异常处理中处理它。

我往往在前面的系统上使用选项 2,这是一个适配器层,与不同的3rd 系统引发。 我们可以在屏幕上给用户显示一个干净的消息,并将细节保存在日志中。 尽管架构复杂得多,但我想知道它在实践中有多好。 所以我想知道你喜欢什么,为什么。

时间:原作者:1个回答

0 0

假设你无法从错误中恢复。

假设这个错误不是函数错误,我将错误记录在一个( 自定义) 未检查的异常中,让框架/容器处理( 所以选项 2 ) 。 我喜欢按他的方式来做因为:

  • 我喜欢使用容器托管事务,并且希望容器能够完成它的工作( 例如 。 回滚任何事务),因此引发运行时异常是一种方法。
  • 它最小化了异常处理工作。
  • 这使得用户可以以轻松地处理一般的方式。

如果是函数错误( 例如 。 用例中的另一个流程,我记录错误并在( 自定义) 中包装异常,因为我希望调用方特别处理问题。

在两种情况下,我对每个层次结构都使用 root 异常,即 TechnicalExceptionFunctionalException

原作者:
...