.net 4.0 如果Finally不能保证执行,那么.NET 4.0 TryCatch活动的意义何在?

.net 4.0 如果Finally不能保证执行,那么.NET 4.0 TryCatch活动的意义何在?,.net-4.0,workflow-foundation,workflow-activity,.net 4.0,Workflow Foundation,Workflow Activity,我今天在设计一个活动时遇到了一个问题,即在TryCatch块的Catch中重新引发异常不会执行Finally,它也与TryCatch块相关。经过进一步调查,我发现了以下情况 如果不能保证执行finally块,有人能向我解释一下finally块在这个活动中的用途吗 我能看到的唯一情况是您是否有嵌套的try块 如果您从“连接”页面中点击一些链接,您将到达可以找到答案的地方。。。要点是: 正常的WF函数如下 try { Environment.FailFast("Game Over.");

我今天在设计一个活动时遇到了一个问题,即在TryCatch块的Catch中重新引发异常不会执行Finally,它也与TryCatch块相关。经过进一步调查,我发现了以下情况

如果不能保证执行finally块,有人能向我解释一下finally块在这个活动中的用途吗


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

如果您从“连接”页面中点击一些链接,您将到达可以找到答案的地方。。。要点是:

正常的WF函数如下

try
{
    Environment.FailFast("Game Over.");
}
finally
{
    Console.WriteLine("Not Called");
}
解决方案是(引用该页史蒂夫·丹尼尔森的话): 如果将取消指定为转义工作流根目录的未处理异常的行为,则它应给出所需的行为。我已经传递了此反馈,并将确保更新文档以反映这一点

ie
Workflowapplication.OnUnhandledException=UnhandledException.Cancel

HTH

让我想起了这个。。。