Spring事务-@Transactional(rollbackFor = Exception.class)

一方面,我们可以将异常分为运行时异常(RuntimeException)和非运行时异常(Exception中除了RuntimeException及其子类以外的)。

另一方面,我们可以将异常分为受控异常(checked exceptions)和不受控异常(unchecked exceptions)。

受控异常(checked exceptions):就是非运行时异常,即Exception中除了RuntimeException及其子类以外的。

不受控异常(unchecked exceptions):RuntimeException和Error。

 

Spring框架的事务管理默认地只在发生不受控异常(RuntimeException和Error)时才进行事务回滚。也就是说,当事务方法抛出受控异常(Exception中除了RuntimeException及其子类以外的)时不会进行事务回滚。

rollbackFor属性在这里就可以发挥它的作用了!

在类或方法前注解配置@Transactional(rollbackFor=Exception.class)就可以实现:

当发生受控异常(checked exceptions)时,事务也进行回滚。

上一篇:解决:django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are n


下一篇:VS里调试排除干扰(启用所有异常进行调试)