2010-03-11 203 views
5

我認爲錯誤處理是一個好主意。 :)調試時,它可以阻礙 - 特別是用戶友好的消息。在VB6中,我可以選中一個編譯器框來忽略我的錯誤處理。我found這個對話框允許我在VS中做類似的事情,但它大約有10,000個複選框而不是一個 - 每次我想要一個生產編譯時都會改變太多。Visual Studio忽略try catch - 只調試

有沒有辦法設置VS,所以當我在調試模式下我得到一組條件,當我在生產中時,我得到另一個? ......還是隻有另一種方法來更有效地處理錯誤和調試?

感謝

+0

Dupe:http://stackoverflow.com/questions/893277/is-there-a-better-way-to-get-visual-studio-to-ignore-try-catch-in-debug-mode – 2010-03-11 18:09:52

回答

1

可以將此屬性添加到您的方法:

[Conditional("DEBUG")] 

您還可以,如果你想使用的#if #ENDIF語句。

+1

這就是去做*非常*醜陋的代碼;在VS.Net中有更好的方法來處理這個問題。 – 2010-03-11 18:09:30

+0

+1我同意#if使醜陋的代碼,屬性方法我不認爲它確實,但它是限制。 – 2010-03-11 18:27:50

3

嘗試調試菜單並查看異常。您可以將其設置爲在引發異常時自動中斷。

2

在代碼中,我可能只是這樣做:

#if !DEBUG 
    try { 
#endif 
     DoSomething(); 
#if !DEBUG 
    } catch (Exception ex) { 
     LogEx(ex); 
     throw new FriendlyException(ex); 
    } 
#endif 

或者。更普遍和更少的#if

#if DEBUG 
    public const bool DEBUG = true; 
#else 
    public const bool DEBUG = false; 
#endif 

try { 
    DoSomething(); 
} catch (Exception ex) { 
    if (DEBUG) throw; 
    LogEx(ex); 
    throw new FriendlyException(ex); 
} 

或者,通用(如異常與P & P處理庫):

bool HandleException(Exception ex) { 
    return !DEBUG; 
} 

但是,如果你真正的問題僅僅是Visual Studio的圖形用戶界面 - just use a macro