4

我今天正在设计一个活动,我遇到了一个问题,即在 TryCatch 块的 Catch 中重新抛出异常不会执行也与之相关联的 finally。经过进一步调查,我发现了以下内容

http://connect.microsoft.com/wf/feedback/details/557601/try-catch-activity-never-executes-finally-if-exception-propagates

如果不能保证执行,谁能向我解释 finally 块在此活动中的用途?

我能看到的唯一情况是您是否有嵌套的 try 块。

4

1 回答 1

5

如果您点击该连接页面中的一些链接,您将到达此页面,您可能会在其中找到答案......要点是:

正常的WF功能如

try
{
    Environment.FailFast("Game Over.");
}
finally
{
    Console.WriteLine("Not Called");
}

解决方案是(从该页面引用 steve danielson): 如果您指定 Cancel 作为未处理异常转义工作流根的行为,那么它应该提供所需的行为。我已经传递了这个反馈,并将确保更新文档以反映这一点。

IEWorkflowapplication.OnUnhandledException = UnhandledExceptionAction.Cancel

高温高压

于 2010-07-14T20:13:33.047 回答