明确解释系统异常与应用程序异常

明确解释系统异常与应用程序异常,第1张

明确解释系统异常与应用程序异常

当存在业务逻辑错误而不是系统错误时,应引发应用程序异常。

有一个重要的区别: 应用程序异常不会自动导致事务回滚 。抛出应用程序异常后,客户端有机会恢复。

应用程序异常被发送到客户端,而没有被重新包装为EJBException。因此,您可以使用它们来报告验证错误或业务逻辑问题,并且它们将到达客户端。

是否包括所有异常,运行时和已检查的异常,而不管其来源如何?

否。默认情况下,应用程序异常是不扩展RuntimeException或RemoteException的异常。您可以如下所述进行更改。

如何使用ApplicationException批注影响行为?

如果要自动回滚事务,可以使用@ApplicationException(rollback = true)。

您还可以在RuntimeException和RemoteException的子类上使用注释,以避免包装为EJBException,并定义它们的自动回滚行为。

其他Java EE库抛出的异常又如何呢?

它们将遵循相同的规则,但是您可以使用XML描述符将第三方类声明为应用程序异常(有或没有自动回滚)。

提供程序代码引发的其他异常呢?

不确定,我认为您很少会看到来自提供程序代码的非系统错误(远程或运行时异常)。

如果将异常包装在EJBException中,会有所不同吗?

是。这将影响您如何处理客户端代码中的异常。

(参考:Enterprise JavaBeans 3.0,Bill Burke,O’Reilly)

希望对您有所帮助。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5489643.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存