Mule 4 Scatter-Gather错误处理相关面试问题正确解答咨询
Mule 4 Scatter-Gather组件错误处理面试问题解答
问题1答复
- 你第一部分的回答是正确的:默认配置下Scatter-Gather要求所有路由都执行成功才会合并返回所有路由的负载,只要任意一条路由抛出未捕获的错误,整个组件就会抛出路由失败错误,不会返回合并后的输出。
- 第二部分的处理方案也完全正确:在每条Scatter-Gather的路由内部包裹
Try作用域,搭配on-error-continue错误处理策略,单条路由的错误就会被当前作用域捕获,不会向外传递到Scatter-Gather组件。此时组件会正常收集所有路由的执行结果,你既可以拿到成功路由的原始返回负载,也可以在on-error-continue中为失败路由自定义错误标识负载,方便后续逻辑区分处理。
问题2答复
- 你的回答是正确的:Mule 4中
on-error-propagate的执行逻辑是先完整执行其内部的所有处理步骤,再向上抛出错误终止当前流程分支。所以你在该错误处理范围内设置的指定负载会先生效,后续错误向上抛出时,当前消息的负载就是你自定义的内容,该负载会被输出(除非上层还有其他错误处理逻辑覆盖了该负载)。
内容的提问来源于stack exchange,提问作者Varsha Srivastava
相关产品推荐
相关产品推荐

