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

2020-06-04 16:33:00 +08:00
 luxinfl

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

1543 次点击
所在节点    程序员
8 条回复
815979670
2020-06-04 16:40:44 +08:00
异常订单是怎么个异常 是状态问题 还是执行出错如果执行报错的话 try 感觉没啥问题, 不过执行前判断一下 是不是就能避免?
luxinfl
2020-06-04 16:44:20 +08:00
@815979670 就是执行出错了
wangyanrui
2020-06-04 16:45:40 +08:00
正如 1 楼所属,首先要区分出 异常订单 异常在什么地方
如果 Exception 才算异常,那么只能用 try catch 这种方式呀
815979670
2020-06-04 17:00:36 +08:00
@luxinfl 如果是可以预见的话 不建议使用 try 来处理 及时判断做更合理的处理
如果是不可预见的异常,只能使用 try 不过异常多了之后还是建议分析原因做更合理的异常处理
毕竟 try 这个玩意是用来保底的,不建议完全靠 try 解决问题
nulihuxi
2020-06-04 17:11:23 +08:00
为了保证这批订单循环不中断也只能在循环中 catch 吧
luxinfl
2020-06-05 09:40:45 +08:00
@wangyanrui 如果是需要调用外部服务,然后外部服务异常了,也只能用 trycatch
@815979670
815979670
2020-06-05 09:58:34 +08:00
@luxinfl 嗯 对于这种不可控或者不可预见的 也只能这样了
wangyanrui
2020-06-05 12:40:53 +08:00
@luxinfl 需要调用外部服务就牵扯到分布式事务的问题呀,就不是单纯的 try catch 了,还有得回滚远程服务的操作 ~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/678635

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX