try catch使用中,catch里已经手动抛出异常了,声明式事务还是失效问题


声明事务@Transactional 默认是遇到 RuntimeException抛出则回滚,下面代码将范围扩大,遇到Exception被抛出就回滚(210行)。

如果主要代码被try catch 了,catch 里面如果没有抛出异常(232行),吞没了异常,那么事务会失效。这一点大家已经都知道了。

现在要讨论是另一种值得注意的情况是 : 加上了finally 之后,catch里面即使抛出了异常,事务也会失效。如下代码事务是有效的,但如果将 234 和236 行注释放开,再运行代码事务就会失效了

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM