我感到惊讶的是,在网络上找到这方面的最佳实践是多么困难,因为这肯定是一个很常见的问题。
App是基于Java1.5-JSF1.2的Faclet,Seam,JPA,Hibernate。一些Web服务调用。一些JMS。
我要的是关于异常处理的一般建议。有大约3种方法,我见过使用,但我从来没有确定哪一种更好。假设你无法从错误中恢复,你会: 1)在错误发生时记录错误并重新抛出它吗?
2)当它发生时记录它并抛出某种类型的泛型异常?
3)让它冒泡起来,然后在通用异常处理servlet或类似的情况下处理它。
我倾向于在以前的系统上使用选项2,其中的体系结构相当简单--适配器层与各种第三方系统对话,如果得到错误返回,则抛出适配器异常,等等。我们可以在屏幕上向用户显示一条干净的消息,并将细节保存在日志中。不过,这里的体系结构要复杂得多,我想知道它在实践中的效果如何。所以我很想知道你喜欢什么和为什么。
发布于 2010-02-26 10:34:56
假设你无法从错误中恢复.
假设此错误不是函数错误,我记录错误并将异常包装在(自定义)未检查的异常中,并让框架/容器处理它(所以选项2)。我喜欢按他的方式做,因为:
如果是功能性错误(即用例中的另一种流程),我记录错误并将异常包装在(自定义)选中的异常中,因为我希望调用方具体地处理它,因为问题是用例的一部分。
在这两种情况下,我对每个层次都使用根异常,即TechnicalException和FunctionalException。
https://stackoverflow.com/questions/2340899
复制相似问题