请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于工作中遇到的异常处理

首先按照惯例说一句老勤牛逼,接下来提问:
老勤,我在最近项目中发现我们的代码只要出现任意的不满足条件均抛出自定义的异常,包括参数校验、业务操作判断不符合条件都抛出了自定义异常,哪怕之前进行了表数据的修改操作,我记得之前我问过你,代码中抛出了异常,统一异常处理那里如果处理后,就相当于手动catch住了异常,这部分代码造成的数据修改是无法回滚的,但是我们的数据确实回滚了事物,请问下这种情况下是不是有其他的处理方式回滚事物。
还有一种情况,我们这边有多张表操作,但是只允许部分事物回滚,比如我们进行一个操作,然后这个操作抛出了异常,但是我们有需要记录失败的次数,哪个操作中涉及到了多张表操作,我们需要回滚表操作的数据,但是失败次数这个记录的数据不需要回滚,这个场景应该如何设计呢?

正在回答 回答被采纳积分+3

1回答

张勤一 2021-11-05 18:01:27

同学你好:

    1. 统一异常处理只是在返回的时候把异常包装返回了,不影响你的业务本身,所以,service 出现了异常,加上了事务注解,当然是可以回滚的,这并没有什么问题

    2. 多张表操作,允许部分事务回滚,这除了业务逻辑层面控制之外,我想不出更好的办法了,记录下来然后简单的处理吧。

2 回复 有任何疑惑可以回复我~
  • 提问者 笑看从前小菜哥 #1
    感谢老勤的回答,关于第二个问题,我想到了一个思路,根据事物的传播行为,一个方法中,使用两种传播行为,产生两个事物来控制
    回复 有任何疑惑可以回复我~ 2021-11-09 20:09:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信