Freigeben über


Debuggen von ASP.NET-Ausnahmen

Das Debuggen von Ausnahmen ist ein wichtiger Teil bei der Entwicklung einer robusten ASP.NET-Anwendung. Allgemeine Informationen zum Debuggen von Ausnahmen finden Sie unter Verwalten von Ausnahmen mit dem Debugger.

Zum Debuggen von nicht behandelten ASP.NET-Ausnahmen muss sichergestellt sein, dass der Debugger dort anhält. Die ASP.NET-Laufzeit verfügt über einen Ausnahmehandler der obersten Ebene. Daher wird der Debugger bei Ausnahmefehlern standardmäßig nie unterbrochen. Um den Debugger beim Auslösen einer Ausnahme zu unterbrechen, müssen Sie die Einstellung Break when Thrown (Unterbrechen beim Auslösen) für diese bestimmte Ausnahme im Dialogfeld Ausnahmen auswählen.

Wenn Sie „Just My Code“ (Nur eigenen Code) aktiviert haben, bewirkt Break when Thrown (Unterbrechen beim Auslösen) nicht, dass der Debugger sofort unterbrochen wird, wenn eine Ausnahme in einer .NET-Methode oder anderem Systemcode ausgelöst wird. Stattdessen wird die Ausführung fortgesetzt, bis der Debugger auf Nicht-Systemcode trifft, und dann unterbrochen. Folglich müssen Sie den Systemcode nicht schrittweise durchlaufen, wenn eine Ausnahme auftritt.

Die Einstellung „Just My Code“ (Nur eigenen Code) stellt Ihnen eine weitere Option zur Verfügung, die nützlich sein kann: Continue When Unhandled in User Code (Fortfahren, wenn in Benutzercode nicht behandelt). Wenn Sie diese Einstellung für eine Ausnahme deaktivieren, unterbricht der Debugger die Ausführung im Benutzercode nur, wenn die Ausnahme nicht durch den Benutzercode abgefangen und behandelt wird. Diese Einstellung neutralisiert die Wirkung des ASP.NET-Ausnahmehandlers der obersten Ebene, da dieser kein benutzerdefinierter Code ist.

So aktivieren Sie Debuggen der ASP.NET-Ausnahmen mit Nur mein Code

  1. Klicken Sie im Menü Debuggen auf die Option Windows>Ausnahmeeinstellungen.

    Das Dialogfeld Ausnahmen wird angezeigt.

  2. Wählen Sie unter Common Language Runtime-Ausnahmen die Zeile für die Ausnahme aus, die beim Auslösen der Ausnahme unterbrochen werden soll.

  3. Wenn Sie Continue When Unhandled in User Code (Fortfahren, wenn in Benutzercode nicht behandelt) deaktivieren möchten, klicken Sie mit der rechten Maustaste auf die Zeile, und deaktivieren Sie die Option, sofern sie bereits ausgewählt ist.

    Wenn Sie die Einstellung User-unhandled (Im Benutzercode nicht behandelt) verwenden möchten, muss Just My Code (Nur eigenen Code) aktiviert werden.

Empfohlene Vorgehensweise für die ASP.NET-Ausnahmebehandlung

  • Platzieren Sie try ... catch-Blöcke für Code, der Ausnahmen auslösen kann, die Sie vorhersehen und behandeln können. Wenn die Anwendung beispielsweise Aufrufe an einen XML-Webdienst sendet oder direkt an eine SQL Server-Instanz, sollte dieser Code in try … catch-Blöcken enthalten sein, weil eine Reihe von Ausnahmen auftreten können.