Spring Transaction详解 - 异常发生时的事务回滚机制

相关文档:Spring官方文档

相关代码:github

在Spring官方文档中说到,当Transaction内发生unchecked exception的时候,会自动rollback,但是当Transaction内发生checked exception时,是不会自动rollback的。

注意,这种处理机制和直觉是不同的,初学者甚至有经验的开发人员直觉上会认为只要Transaction内发生异常,都会自动rollback。

其实仔细想想Spring这样处理是有意为之的,因为unchecked exception是一种出乎意料的异常(RuntimeException),这类异常在java语言层面不强制catch,那么出现这种异常的时候spring自然应该自动rollback。

但是checked exception不同,这类异常在java语言层面是强制catch的,也就是说强制调用方对这类异常做处理,所以此时Spring就将处理权转移给了调用方,而不是自动rollback。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值