【发布时间】:2009-10-17 06:46:51
【问题描述】:
我不断地从许多其他开发人员那里得到这个“建议”。根据我的经验,我发现从 bean 实例的角度来看,EJBExceptions 非常适合“世界末日”(比如当某些事情非常错误以至于 bean 实例无法自行恢复时)。如果一个实例可以恢复,我认为最好抛出一个应用程序异常。
这是我一次又一次遇到的模式:
私有 SomeResource 资源; ejb创建: 资源 = 分配资源(...); om消息: 尝试 { ... } 捕捉(JMSException e){ 抛出新的 EJBException(e); } ejb删除: 免费资源(资源);恕我直言,这是导致资源泄漏的反模式。
编辑:具体来说,EJB 规范说,如果 bean 从业务方法中抛出运行时异常(并且 EJBException 是运行时异常),那么 bean 会被丢弃而不调用 ejbRemove。
这是一个反对抛出 EJBException 的相关示例吗? 应该抛出 EJBException 的相关情况有哪些?
【问题讨论】:
-
@vinny_g:我已经添加了您对我(现已删除)“答案”的评论中的解释。
标签: java jakarta-ee ejb