Throw活动的Exception字段中包含什么

本文关键字:包含 什么 字段 Exception 活动 Throw | 更新日期: 2023-09-27 18:06:14

谁能告诉我如何使用抛出活动的异常字段?

我需要具体的例子。我抛出一个异常,因为我需要在调用代码中捕获它,然后运行一些清理代码。

谢谢你的帮助

理查德

回复Chuck

我尝试了以下操作,工作流取消了,但执行没有进入捕获。知道为什么吗?

public class AbortException : System.Exception
{
}
class manager
{
    ...
    try
    {
        workflowApp.Run();
    }
    catch (AbortException ea)
    {
    }
    catch (Exception ex)
    {
    }
    ...
}

的异常属性为:New AbortException

Throw活动的Exception字段中包含什么

您仍然在这里使用WorkflowApplication,对吗?

是在不同的线程上执行,所以c#的try/catch在Run()周围不起作用。你需要添加一个处理程序到OnUnhandledException事件,正如我在你的其他问题中指出的。

WorkflowApplication wfApp = new WorkflowApplication(new YourWorkflow());
wfApp.OnUnhandledException = e => UnhandledExceptionAction.Abort;
wfApp.Run();

最简单的方法是创建一个类来扩展exception并传递您想要的任何值,比如:

public class MyError : Exception
{
   public MyError() : base(string.Empty) {}
   public MyError(Exception e) : base(e.Message) {}
   public int MyCustomValue { get; set; }
}

然后像这样使用它(将5的值传递给catch处理程序)

throw new MyError(){ MyCustomValue = 5 };

然后在你的catch

try{}
catch(MyError ex)
{
    Console.Write(ex.MyCustomValue.ToString());
}