@Transactional注解真的有必要声明rollbackFor属性吗?( 二 )

判断抛出的异常是RuntimeException或者Error就会进行回滚 。说明spring没有对非运行时异常(检查时异常)进行处理,这是因为非运行时异常在编码时,是需要我们开发人员手动去进行try catch进行处理的,也不允许抛出非运行时异常,比如IOException,不然编译器编译都不通过 , 更别谈运行程序了 。
【@Transactional注解真的有必要声明rollbackFor属性吗?】总结:我们规范中要求指定rollbackFor=Exception.class,但是spring中已经包含了RuntimeException的处理,Exception的另一种实现就是非运行时异常,这种我们代码中已经处理了,所以也不需要再去指定 。

推荐阅读