参看文: 链接
理解异常分类
未检测异常:
Error和RuntimeException及其子类成为未检查异常(unchecked)
检测异常:
其它异常成为已检查异常(checked)。
异常回滚机制配置有两种
- 注解
- 配置文件
详细的内容,查看参考文
根据注解方式我使用到的代码
spring事务的默认配置
Spring的事务管理默认是针对unchecked exception回滚,也就是默认对Error异常和RuntimeException异常以及其子类进行事务回滚,且必须对抛出异常,若使用try-catch对其异常捕获则不会进行回滚!(Error异常和RuntimeException异常抛出时不需要方法调用throws或try-catch语句)
我的需求是,捕捉异常后,还需要额外的业务处理,但是扑捉异常,不会回滚。这里用到了
//捕获异常后进行回滚
TransactionAspectSupport.currentTransactionStatus