2010-07-14 59 views
4

我今天正在設計一個Activity,並且遇到了一個問題,在TryCatch塊的Catch中重新拋出一個異常不會執行與之關聯的Finally。經進一步調查我碰到下面如果Finally不能保證執行,.NET 4.0 TryCatch Activity的意義何在?

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

來到誰能給我解釋如何使用finally塊的就是在這個活動如果不能保證執行?

我能看到的唯一情況是如果你有嵌套的try塊。

+1

提醒我這... http://thedailywtf.com/Articles/My-Tales.aspx – 2010-07-14 20:06:24

回答

5

,如果你遵循一些連接讓您將達到this page頁面,您可以找到答案...要點是:

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

正常WF功能的解決方案(引用該頁面中的steve danielson): 如果您指定Cancel作爲未處理異常轉義行爲,那麼它應該給出所需的行爲。我已經通過此反饋,並確保文檔更新以反映此情況。

Workflowapplication.OnUnhandledException = UnhandledExceptionAction.Cancel

HTH

相關問題