Ausnahmebehandlung (Debuggen)
Aktualisiert: November 2007
Dieses Thema gilt für folgende Anwendungsbereiche:
Edition |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Standard |
||||
Pro und Team |
Tabellenlegende:
Vorhanden |
|
Nicht vorhanden |
|
Befehl oder Befehle, die standardmäßig ausgeblendet sind. |
Eine Ausnahme ist eine von der Regel abweichende Situation, die während der Ausführung eines Programms eintritt. Ausnahmen weisen häufig auf Probleme hin, die debuggt werden müssen. Wenn eine Ausnahme ausgelöst wird, schreibt der Debugger eine Ausnahmemeldung an das Fenster Ausgabe, sofern dies im Dialogfeld Allgemein, Debuggen, Dialogfeld "Optionen" nicht deaktiviert ist.
Der Debugger unterbricht möglicherweise die Ausführung, wenn eine Ausnahme auftritt.
Wenn eine Nicht-ASP.NET-Ausnahme auftritt und nicht behandelt wird, unterbricht der Debugger immer die Ausführung.
Sie können durch eine entsprechende Konfiguration des Debuggers die Ausführung sofort beim Auftreten einer Ausnahme unterbrechen, noch bevor ein Handler aufgerufen wird. Weitere Informationen finden Sie unter Gewusst wie: Unterbrechen bei ausgelöster Ausnahme.
Wenn Sie mit Gewusst wie: Einzelschritte in "Nur mein Code" debuggen, haben Sie eine dritte Option zur Auswahl. Sie können durch eine entsprechende Konfiguration des Debuggers bei allen Ausnahmen, die nicht von einem Handler im Benutzercode ("Mein Code") behandelt werden, eine Unterbrechung veranlassen. Weitere Informationen finden Sie unter Gewusst wie: Unterbrechen bei Ausnahmen, die nicht vom Benutzercode behandelt werden.
ASP.NET verfügt über einen Ausnahmehandler der obersten Ebene, der Ausnahmen behandelt, um den Browserbenutzern die Fehlerseiten anzuzeigen. Dieser Ausnahmehandler der obersten Ebene hält eine nicht behandelte Ausnahme davon ab, den Debugger abzubrechen, es sei denn, Nur mein Code ist aktiviert. Stellen Sie sicher, dass für ASP.NET-Debuggen Nur mein Code aktiviert ist.
Beachten Sie, dass eine nicht behandelte Ausnahme immer zu einer Unterbrechung des Debuggers führt. Auch die Einstellung "Vom Benutzercode unbehandelt" ändert das nicht.
Der Visual Studio-Debugger erkennt die folgenden Ausnahmekategorien:
C++-Ausnahmen
Common Language Runtime-Ausnahmen
Assistenten für verwaltetes Debuggen
Systemeigene Laufzeitüberprüfungen
Win32-Ausnahmen
Die meisten Ausnahmen verfügen über Handler, die entwickelt wurden, um auf eine Ausnahme zu reagieren, wenn diese auftritt. Dadurch hat das Programm die Möglichkeit, die abnormale Situation zu beheben. Systemeigene Laufzeitüberprüfungen besitzen keine Handler.
In Visual Basic-Anwendungen werden alle Fehler vom Debugger als Ausnahmen dargestellt. Dies ist auch dann der Fall, wenn Sie Fehlerhandler des Typs On Error verwenden.
Für Visual Basic und C# verfügt der Debugger nun über das neue Ausnahmen-Assistent-Feature, das im Fall einer Ausnahme zusätzliche Informationen bereitstellt.
In den folgenden Themen erhalten Sie Informationen zur Behandlung von Ausnahmen:
Gewusst wie: Unterbrechen bei Ausnahmen, die nicht vom Benutzercode behandelt werden
Verwenden von Laufzeitüberprüfungen ohne die C-Laufzeitbibliothek
-
Hinweis: (Nur für Visual Basic und Visual C#) Wenn eine nicht abgefangene Ausnahme auftritt und der Ausnahmen-Assistent deaktiviert ist, wird dem Fenster Lokal eine Pseudovariable $exception hinzugefügt. Sie können diese Pseudovariable erweitern, um Informationen zur Ausnahme anzuzeigen.
Siehe auch
Aufgaben
Gewusst wie: Einzelschritte in "Nur mein Code"