为什么我无法捕获子流程中的错误?
Why I couldn't catch the error in subflow?
从 Main api,我调用了一个子流。我在主流程和子流程中定义了错误处理程序。(我的情况很复杂)
这是我正在尝试的简单流程设计;
在主流中,在异步范围内,我称之为子流。 Mainflow,本身有errorhandler。
在报告子流中,我调用了另一个子流,它引发了 403 错误。
我想在报告子流程中处理这个问题。所以我用了,错误继续。我在那里使用了日志调解器来查看它是否被执行。
但事实并非如此。
相反,从我得到的主要流程中,记录“在主要错误处理程序中”
我没有定义任何全局错误处理程序。
这是为什么?
主流
<flow name="post:\notifications:raml-config">
.................
<async doc:name="Async">
<try doc:name="Try">
<flow-ref doc:name="Call-Reporting-subFlow
name="reporting-subflow" />
<error-handler >
<on-error-propagate enableNotifications="true" logException="true" doc:name="On Error Propagate" doc:id="743fc7cb-38d4-4a0c-ab36-9105645ce710" >
<logger level="INFO" doc:name="Logger" doc:id="5d18eb33-780e-4353-b65f-b26eec88612a" message="in main errror handler"/>
............
</flow>
子流(报告流)
<sub-flow name-"reporting-subflow">
<try doc:name="Try" >
<flow-ref doc:name="getcontracts" name="get-details-subflow" />
<error-handler >
<on-error-continue enableNotifications="true" logException="true" doc:name="On Error Continue" type="HTTP:FORBIDDEN">
<logger level="INFO" doc:name="Logger" message="GOT 403 error"/>
<flow-ref doc:name="gettoken" name="getToken-subflow" />
</error-handler>
</try>
</sub-flow>
以下之一可能是原因:
- 我们不能为子流程定义错误处理,我们只能这样做
私人流量和正常流量。
- 即使主流程有错误处理程序,其中引用的流程
Async 作用域将不受此错误处理程序的管理。解决
这个:
- 将异步错误处理程序中的流程引用为
私有流程并在流程级别定义错误处理
- 或在应用程序级别定义全局错误处理。
从 Main api,我调用了一个子流。我在主流程和子流程中定义了错误处理程序。(我的情况很复杂) 这是我正在尝试的简单流程设计; 在主流中,在异步范围内,我称之为子流。 Mainflow,本身有errorhandler。 在报告子流中,我调用了另一个子流,它引发了 403 错误。 我想在报告子流程中处理这个问题。所以我用了,错误继续。我在那里使用了日志调解器来查看它是否被执行。 但事实并非如此。 相反,从我得到的主要流程中,记录“在主要错误处理程序中” 我没有定义任何全局错误处理程序。 这是为什么?
主流
<flow name="post:\notifications:raml-config">
.................
<async doc:name="Async">
<try doc:name="Try">
<flow-ref doc:name="Call-Reporting-subFlow
name="reporting-subflow" />
<error-handler >
<on-error-propagate enableNotifications="true" logException="true" doc:name="On Error Propagate" doc:id="743fc7cb-38d4-4a0c-ab36-9105645ce710" >
<logger level="INFO" doc:name="Logger" doc:id="5d18eb33-780e-4353-b65f-b26eec88612a" message="in main errror handler"/>
............
</flow>
子流(报告流)
<sub-flow name-"reporting-subflow">
<try doc:name="Try" >
<flow-ref doc:name="getcontracts" name="get-details-subflow" />
<error-handler >
<on-error-continue enableNotifications="true" logException="true" doc:name="On Error Continue" type="HTTP:FORBIDDEN">
<logger level="INFO" doc:name="Logger" message="GOT 403 error"/>
<flow-ref doc:name="gettoken" name="getToken-subflow" />
</error-handler>
</try>
</sub-flow>
以下之一可能是原因:
- 我们不能为子流程定义错误处理,我们只能这样做 私人流量和正常流量。
- 即使主流程有错误处理程序,其中引用的流程
Async 作用域将不受此错误处理程序的管理。解决
这个:
- 将异步错误处理程序中的流程引用为
私有流程并在流程级别定义错误处理 - 或在应用程序级别定义全局错误处理。
- 将异步错误处理程序中的流程引用为