You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让C#编写的UiPath Scope Activity阻止异常向上层传播?

阻止UiPath自定义Scope Activity的异常向上传播

你当前的OnFaulted方法仅记录了异常状态、取消子活动,但没有明确告知UiPath的工作流运行时该异常已被处理,所以运行时仍会将异常包装为RemoteException继续向上传播。

解决方法很简单:在OnFaulted方法末尾调用faultContext.HandleFault(),这个方法会标记异常已被处理,阻止其继续向上层扩散。

修改后的OnFaulted代码如下:

private void OnFaulted(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
{
    Console.WriteLine("OnFaulted");
    hasEncounteredException.Set(faultContext, true);
    exceptionMessage.Set(faultContext, propagatedException.Message);
    faultContext.CancelChildren();
    Cleanup();
    // 关键:告知运行时异常已被处理,停止传播
    faultContext.HandleFault();
}

另外需要确认你的自定义Scope Activity是否正确继承了NativeActivity(而非CodeActivity),并且没有在其他地方主动抛出或转发异常。只要调用了HandleFault(),工作流就会认为异常已被捕获,后续活动可以正常执行。

内容的提问来源于stack exchange,提问作者Blazwing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:01:03