try catch 事务不会滚
Posted 易连山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了try catch 事务不会滚相关的知识,希望对你有一定的参考价值。
在spring机制中,在配置事务后,如果采用try catch 捕获异常后,因为异常已经被捕获,所以事务不会滚,从而产生许多脏数据。
解决办法:
1.在catch中抛出异常,(throw new RuntimeException("");)且为运行时异常,抛出普通异常不会滚。
2.如果为注解配置,那么可以将 try (method) catch 的method,单独提出成一个方法,那么在此方法上增加注解@Transactional,那么此方法会被会滚,
且异常可以正常捕获。
合理使用try catch 。在代码重构时,发现许多不合理的使用,产生了许多脏数据,从而导致一些偶然的用户保障,但是问题却无法定位。
以上是关于try catch 事务不会滚的主要内容,如果未能解决你的问题,请参考以下文章
spring事务管理中,用try-catch处理了异常,事务也会回滚?