2009-06-01 9 views
3

In meinem Code habe ich derzeit eine Ausnahmebehandlung Setup, die Ausnahmen zu Textdateien protokolliert. Wenn ich jedoch den Code debugge, würde ich lieber nicht mit den Ausnahmen umgehen und die Ausführung stoppen lassen, anstatt die Datei zu lesen, einen Haltepunkt zu setzen usw. Gibt es einen einfachen Weg, dies mit den Build- und Release-Konfigurationen (etwas wie eine Präprozessordirektive, die ich verwenden könnte, um etwas vom Ausnahmebehandlungscode zu kommentieren)?Wie kann ich die Ausführung für ALLE Ausnahmen während des Debuggens in Visual Studio stoppen?

Es stellt sich heraus, dass es eine bessere Lösung als die ursprüngliche Frage gibt, siehe die erste Antwort.

+0

"Debug> Ausnahmen ..." ein netter Trick ist. Vielleicht möchten Sie den Titel der Frage so ändern, dass "wie bei einer Ausnahme unterbrochen wird?" oder "Wie kann die Ausnahmebehandlung übersprungen werden?". –

Antwort

7

C# tut have preprocessor directives (z wenn definieren, etc ...), die Sie für diesen Zweck verwenden können.

Sie können jedoch auch die Einstellungen unter "Debug -> Ausnahmen ..." in Visual Studio ändern, sodass der Debugger jedes Mal bricht, wenn eine Ausnahme ausgelöst wird (bevor die Ausführung zum catch-Block geht).

4

so etwas wie dieses Versuchen:

if (System.Diagnostics.Debugger.IsAttached) 
    System.Diagnostics.Debugger.Break(); 
else 
    LogException(); 
1
#if DEBUG 
// Something 
#else 
// Something else 
#endif 
0

Ich würde zögern, Präprozessordirektiven zu verwenden. Ich könnte mir vorstellen, dass Sie etwas wollen, das sich leicht auf Ihre gesamte Lösung anwenden lässt und nicht Präprozessor-Direktiven in Ihrem gesamten Code festhält.

Von den vorherigen Antworten ist Joel gut. Sie können jedoch dasselbe erreichen, indem Sie auf Debug/Exceptions gehen und sicherstellen, dass die Kontrollkästchen in der Zeile "Common Language Runtime Exceptions" ausgewählt sind. User-unhandled ist normalerweise standardmäßig ausgewählt.

Verwandte Themen