2011-01-05 41 views
0

我一直認爲在Visual Studio和C#中,未處理的異常總是會導致程序終止。現在我知道我可以繼續。另外,當應用程序在調試模式下運行時,我可以在部署程序時(或者在創建可執行文件時調用它時如何調用它)來「跳過」未處理的異常?它會使其崩潰嗎?調試模式下的C#異常與真實

+0

爲什麼要面對你無法處理的異常情況(即未處理的異常)呢? – 2011-01-05 14:41:50

+0

對於Winforms或WPF應用程序,這不是真的。或者在Debug + Exceptions對話框中勾選了Thrown複選框。更好地記錄你的問題。 – 2011-01-05 14:42:21

+0

對不起,我不想解除異常。我只想知道我的想法是否正確。 – Loj 2011-01-05 14:42:48

回答

0
catch(Exception ex) 
{ 
    #if DEBUG 
    Console.WriteLn("oops") 
    #else 
    throw 
    #endif 
} 
+2

這應該是「扔」,而不是「拋出」如果你想保持原來的堆棧幀。 – 2011-01-05 14:46:25

0

我認爲這些文章將是有益的,供您閱讀:

Exception Handling (MSDN)
Handling and Throwing Exceptions (MSDN)

這是更好地掌握基礎知識,然後決定什麼最適合你。

+0

謝謝。我明白如何處理異常。我只是好奇,爲什麼一旦發生異常,我可以繼續(至少)控制檯應用程序。我以爲它會終止。 – Loj 2011-01-05 14:51:52

0

異常意味着意外的事情發生。如果應用程序不知道如何響應,它會崩潰。

我們擁有像try catch finally這樣的結構的原因是讓應用程序意識到不可預見的問題以及如何在這種情況下做出反應。

如果您正確實施異常處理,您的應用程序將始終平穩運行。它可能會終止,但即使這樣也不會突然。