为什么我无法捕获子流程中的错误?

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>

以下之一可能是原因:

  1. 我们不能为子流程定义错误处理,我们只能这样做 私人流量和正常流量。
  2. 即使主流程有错误处理程序,其中引用的流程 Async 作用域将不受此错误处理程序的管理。解决 这个:
    • 将异步错误处理程序中的流程引用为
      私有流程并在流程级别定义错误处理
    • 或在应用程序级别定义全局错误处理。