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
您仍然在这里使用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());
}