2010-03-02 15 views
8

Ich weiß, Exception Handling ist eine sehr wichtige Sache, und wir tun es in allen unseren Projekten. Der Hauptgrund besteht darin, Fehler zu protokollieren, die bei den Kunden auftreten. Das funktioniert gut und ist überhaupt kein Problem.Nur brechen für bestimmte Ausnahmearten

Aber während ich noch die Anwendung mit Visual Studio codiere und ausführe, möchte ich überhaupt keine Ausnahmebehandlung. Ich möchte, dass der Debugger genau an der Zeile stoppt, in der die Anwendung abgestürzt ist, und nicht in einem Fehlerlogger, den ich geschrieben habe. Und ich möchte keine Ausnahmen mit Throw weiterleiten!

Aber ich suche immer noch nach einer einfachen Möglichkeit, das zu tun. Ich könnte unzählige #if Debug oder #if Release Aussagen rund um den Versuch/Fang schreiben, aber das ist nicht das, was ich tun möchte. Gibt es einen anderen Weg, um mit diesem Problem umzugehen?

+0

Warum können Sie nicht mit der vorhandenen Ausnahmebehandlung programmieren? – JonH

+0

@ JonH - Vermutlich gibt es ein Performance-Problem. Exception-Handling ist bequem und vielseitig, aber mit einem Preis. – Hardryv

Antwort

16

(1) Öffnen Sie Visual Studio mit Ihrem Projekt
(2) Debug-Menü, Ausnahmen
(3) Für die Ausnahmetypen Sie kümmern sich um die Thrown ankreuzen.

Dies macht es so, dass jedes Mal, wenn eine Ausnahme der ausgewählten Typen ausgelöst wird, Sie automatisch in es einbrechen werden. Wenn Sie zum regulären Debugging zurückkehren möchten, kehren Sie zum selben Ausnahmenfenster zurück und klicken Sie auf "Alles zurücksetzen" und Sie kehren zu den Standardeinstellungen zurück.

+0

Die Schaltfläche Suchen ... ist auch sehr gut, auch wenn nur ein Teil des Namens übereinstimmt. –

+0

Ich hatte gerade das Problem, dass ich keine Spalte "User Unhandled" hatte. Dieser hat mir geholfen: http://stackoverflow.com/questions/4560497/exception-window-in-vs-net-2010-is-missing-the-user-unhandled-column – TweeZz

9

Sie können den Visual Studio-Debugger so konfigurieren, dass er bricht, wenn die Ausnahme ausgelöst wird. Siehe das Menü Debug -> Ausnahmen.

Weitere Informationen:

How to: Break When an Exception is Thrown

1

in Visual Studio-Menü Debug-> Ausnahme Überprüfen Sie alle unter der Rubrik "Geworfene". Standardmäßig werden alle Elemente auf die Spalte "User Unhandled" überprüft.

Auf diese Weise bricht Debugger jedes Mal, wenn die Ausnahme ausgelöst wird.

Hinweis: Dies wird nicht Teil der Projekteigenschaft

+0

Ich hatte gerade das Problem, dass ich didn habe keine Spalte "User Unhandled". Dieser hat mir geholfen: http://stackoverflow.com/questions/4560497/exception-window-in-vs-net-2010-is-missing-the-user-unhandled-column – TweeZz

0

im VS-Editor sein, das Sie ohne setzen die braekpoints von der Art der Ausnahme der codebreaks einstellen - Sie können es das Debug-Menü mit -> Ausnahme damit können Sie tun, was Sie wollen.

1

Debug> Exceptions (Strg + Alt + E), aktivieren Sie Generally Language Runtime Exceptions ausgelöst, um alle Ausnahmen zu werfen, oder wählen Sie die Ausnahmen, die Sie manuell mit Alle finden möchten. Nachdem Sie mit dem Debuggen fertig sind, klicken Sie auf Alle zurücksetzen, um zur Standardeinstellung zurückzukehren.

Verwandte Themen