V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
luxinfl
V2EX  ›  程序员

批量订单处理,保存有处理异常的订单,这个怎么实现

  •  
  •   luxinfl · 2020-06-04 16:33:00 +08:00 · 1404 次点击
    这是一个创建于 1419 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说有 100 个订单,可能某一两个处理会有问题,我们要记录下来。 只能这样做么 for(){ try{ 处理订单 }catch(){ 保存异常订单 } } 总感觉 try catch 这样用不太靠谱

    8 条回复    2020-06-05 12:40:53 +08:00
    815979670
        1
    815979670  
       2020-06-04 16:40:44 +08:00
    异常订单是怎么个异常 是状态问题 还是执行出错如果执行报错的话 try 感觉没啥问题, 不过执行前判断一下 是不是就能避免?
    luxinfl
        2
    luxinfl  
    OP
       2020-06-04 16:44:20 +08:00
    @815979670 就是执行出错了
    wangyanrui
        3
    wangyanrui  
       2020-06-04 16:45:40 +08:00
    正如 1 楼所属,首先要区分出 异常订单 异常在什么地方
    如果 Exception 才算异常,那么只能用 try catch 这种方式呀
    815979670
        4
    815979670  
       2020-06-04 17:00:36 +08:00
    @luxinfl 如果是可以预见的话 不建议使用 try 来处理 及时判断做更合理的处理
    如果是不可预见的异常,只能使用 try 不过异常多了之后还是建议分析原因做更合理的异常处理
    毕竟 try 这个玩意是用来保底的,不建议完全靠 try 解决问题
    nulihuxi
        5
    nulihuxi  
       2020-06-04 17:11:23 +08:00
    为了保证这批订单循环不中断也只能在循环中 catch 吧
    luxinfl
        6
    luxinfl  
    OP
       2020-06-05 09:40:45 +08:00
    @wangyanrui 如果是需要调用外部服务,然后外部服务异常了,也只能用 trycatch
    @815979670
    815979670
        7
    815979670  
       2020-06-05 09:58:34 +08:00
    @luxinfl 嗯 对于这种不可控或者不可预见的 也只能这样了
    wangyanrui
        8
    wangyanrui  
       2020-06-05 12:40:53 +08:00
    @luxinfl 需要调用外部服务就牵扯到分布式事务的问题呀,就不是单纯的 try catch 了,还有得回滚远程服务的操作 ~~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1004 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:53 · PVG 03:53 · LAX 12:53 · JFK 15:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.