Udostępnij za pośrednictwem


Porady: debugowanie wyjątków ASP.NET

Debugowanie wyjątków jest ważną częścią opracowywania niezawodnej aplikacji ASP.NET.Informacje ogólne dotyczące debugowania wyjątków są w temacie Obsługa wyjątków (debugowanie).

Aby debugować nieobsłużone wyjątki ASP.NET, należy się upewnić, że debuger zatrzymuje działanie dla nich.Środowisko wykonawcze programu ASP.NET ma program obsługi wyjątków najwyższego poziomu.Dlatego domyślnie debuger nigdy nie przerywa wykonywania kodu na nieobsłużonych wyjątkach.Aby przerwać działanie debugera, gdy występuje wyjątek, należy wybrać ustawienie Przerwa, gdy wystąpił wyjątek dla określonego wyjątku w oknie dialogowym Wyjątki.

Jeśli włączono funkcję Tylko mój kod, opcja Przerwij, gdy zwrócony jest ten typ wyjątku nie powoduje, że debuger natychmiast przerywa, jeśli wyjątek jest zgłaszany w metodzie środowiska .NET Framework lub innym kodzie systemowym.Zamiast tego kontynuuje wykonywanie dopóki debuger nie trafi na kodu-system, a następnie przerywa.W rezultacie nie musisz przechodzić przez kodu systemu po wystąpieniu wyjątku.

Tylko mój kod daje inne rozwiązanie, które może być bardziej przydatne: Podział, gdy wyjątek jest: User-unhandled.Jeśli wybierzesz to ustawienie dla wyjątku, debuger spowoduje przerwanie wykonywania w kodzie użytkownika, ale tylko wtedy, gdy wyjątek nie został wychwycony i obsłużony przez kod użytkownika.To ustawienie neguje efekt obsługi wyjątków ASP.NET najwyższego poziomu, ponieważ funkcja obsługi występuje w kodzie, który nie jest kodem użytkownika.

Aby włączyć debugowanie wyjątków ASP.NET za pomocą funkcji Tylko mój kod

  1. W menu Debugowanie kliknij Wyjątki.

    Pojawi się okno dialogowe Wyjątki.

  2. W wierszu Wyjątki środowiska uruchomieniowego w trakcie wykonywania zaznacz Wyrzucone lub Nie obsługiwane przez użytkownika.

    Aby użyć ustawienia User-unhandled, funkcja Tylko mój kod musi być włączona.

Aby korzystać z najważniejszych wskazówek dotyczących obsługi wyjątków programu ASP.NET

  • Umieść try … catch bloki wokół kodu, który może generować wyjątki, które można przewidzieć i wiedzieć jak je obsługiwać.Na przykład jeśli aplikacja wykonuje wywołania do usługi sieci Web XML lub bezpośrednio do programu SQL Server, ten kod powinien być w blokach try... catch, ponieważ istnieją liczne wyjątki, które mogą wystąpić.