事务一致性 与异常抛出

通常  我们 利用  配置 service层  update,save 等方法名前缀 来达到事务。并将 存储修改  的 代码 放入 service  以  保持 事务的 完整性。
而在 实际 项目中 遇到 如图:

在代码执行 到 bonusService.save 操作时 已经 发生异常 但并未 抛出异常,尽管在 第一幅图第二行 throws exception ,但程序并未停止 ,并依然执行了 白色框中的代码,
导致了 功能错误
究其原因。一般类似空指针,数组越界等异常会被程序捕捉抛出。而对于程序事务中使用了乐观锁 导致 的异常 并未被程序 抛出 。
于是总结, 在service 中只 放 与事务 有关 的代码。 与事务 无关的 代码 放置于 controllor中。(注:在修改中首先将白色区域代码独立出来构造一个父方法。发现,在 service中 若子方法事务,而父方法不事务并调用子方法。则 程序将会 把 父子方法 同事务处理。即 结果 依然 会执行 白色区域代码)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值