在已检查的异常上使用@ApplicationException来设置回滚属性

时间:2016-10-05 02:03:18

标签: exception java-ee transactions ejb

我知道EJB 3.1 @ApplicationException可以应用于运行时异常,以将它们标记为未经检查的应用程序异常。但它是否也可以用于已检查的异常(默认情况下是应用程序异常),以便将它们配置为仅仅回滚(即rollback=true),还是只允许在运行时异常上使用?

(尽管让应用程序/已检查异常不允许客户端从中恢复它的事务可能是一个糟糕的设计选择。)

1 个答案:

答案 0 :(得分:0)

  

但是它也可以用于已检查的异常(默认情况下是应用程序异常),以便将它们配置为仅仅回滚(即rollback=true),或仅在运行时异常时允许

应用程序异常不会导致自动容器管理回滚,方法是将rollback=true tell容器设置为回滚事务,然后再将其传递给客户端。这意味着以下两个代码都将在异常传递之前回滚。

//specifies as checked expection
@ApplicationException(rollback=true)
public class ParkingSystemException extends Exception {
ApplicationException

//specifies as system exception as application Exception
@ApplicationException(rollback=true)
public class ParkingSystemException extends RuntimeException {