据我了解,即使发生某些非常糟糕的事件,捕获错误也会帮助我们正确地执行操作。还是没有帮助?
你不需要显式指定
rollbackFor = Throwable.class,因为默认情况下,如果
Error发生交易,spring会默认回滚事务。
请参见12.5.3回滚声明式事务
在默认配置中,Spring框架的事务基础结构代码仅在运行时,未经检查的异常的情况下将事务标记为回滚。也就是说,当抛出的异常是RuntimeException的实例或子类时。(默认情况下,错误也会导致回滚)。从事务方法引发的检查异常不会导致默认配置中的回滚。
或看看
DefaultTransactionAttribute
public boolean rollbackOn(Throwable ex) { return (ex instanceof RuntimeException || ex instanceof Error);}


