为什么在mulesoft中“在错误传播上”会抛出相同的错误?

时间:2019-01-31 13:57:47

标签: error-handling mule mule-studio mule-esb

我是mulesoft的新手,在学习它的同时,我努力了解为什么在执行范围后,为什么在模块“ onErrorPropagate”上错误被重新抛出

您能解释一下好处吗?

2 个答案:

答案 0 :(得分:1)

错误传播将回滚所有事务,执行并使用该结果重新抛出现有错误-这意味着其所有者将被视为“失败”。

最好的用途是在分层系统中,以允许每一层都执行其自己的一小部分错误响应。

如果您熟悉Java,则可以将其视为捕获异常并重新抛出它。例如,有时您想自己对错误进行处理,但仍希望向上传播该错误,以进行更高级别的处理。

您可以在错误的特定流中添加日志记录,然后将其留给父流以实际处理异常。

答案 1 :(得分:1)

“ onErrorPropagate”将错误传播(重新抛出)到父流程(或全局错误处理程序,如果已经到达主流的话)。

在某些情况下这可能很有用。 假设您有一些特定于流的错误处理(例如,如果出现问题,请设置默认有效负载)。 然后,将此错误传播到下一个级别,在该级别中,您将具有全局错误处理程序,例如,将一些信息存储在QA数据库中。

您不想在每个错误处理程序中都具有该数据库连接器。 这样,您就可以为自己的错误实现类似于“ java继承”的结构。

旁注:如果只希望处理错误并且不做进一步处理,则可以使用“ onErrorContinue”