Gestionarea excepțiilor utilizând depanatorul

Când se produce o excepție, debuggerul scrie mesajul său în fereastra "Ieșire". Poate întrerupe executarea în următoarele cazuri:

dacă survine o excepție și nu este procesată;







în cazul în care programul de depanare este configurat să întrerupă executarea imediat după ce a avut loc excepția, înainte de a apela un operator;

dacă este specificat numai codul My și debuggerul este configurat să întrerupă pentru orice excepție care nu este procesată în codul de utilizator.

În ASP.NET, există un handler de excepție de nivel superior care afișează paginile de eroare din browser. Nu întrerupe execuția până când nu este activată opțiunea Codul meu. Pentru un exemplu, consultați Configurarea aplicației de depanare pentru a relua execuția atunci când sunt scoase mai jos excepții non-utilizator.

În aplicațiile scrise în Visual Basic, debuggerul gestionează toate erorile ca excepții, chiar și atunci când se utilizează dispozitive de gestionare a erorilor, cum ar fi On Error.

În fereastra Setări de excepție, puteți specifica care excepții (sau seturi de excepții) vor determina stoparea programului de depanare și în acest moment trebuie să faceți acest lucru. Puteți adăuga sau elimina excepții sau seta excepții atunci când are loc o întrerupere. Deschideți această fereastră în soluția deschisă prin selectarea în secvență a opțiunilor Debug / Window / Exception.

Pentru a găsi anumite excepții, puteți utiliza fereastra Căutare în bara de instrumente Setări de excepție sau puteți aplica funcția de căutare pentru a filtra anumite spații de nume (de exemplu, System.IO).

Configurarea programului de depanare pentru a întrerupe execuția atunci când creați o excepție

Debuggerul poate întrerupe executarea aplicației în punctul în care se produce excepția, oferind astfel o șansă de verificare a excepției înainte ca apelantul să fie apelat.

Gestionarea excepțiilor utilizând depanatorul

Când verificați această excepție, depanarea va fi întreruptă ori de câte ori se va produce această excepție, indiferent dacă aceasta este procesată sau nu. În acest moment, excepția este numită prima instanță a excepției. Mai jos sunt câteva exemple.







În următoarea aplicație C # consolă, metoda principală aruncă un AccessViolationException în blocul Try / Catch.

În cazul în care o AccessViolationException excepție a remarcat în fereastra Setări de excepții. atunci când acest cod în modul de depanare se va opri la o metode ThrowHandledException linia de aruncări () și ThrowUnhandledException ().

Pentru a restabili setările implicite pentru excluderi, dați clic pe butonul Restaurare din bara de instrumente.

Gestionarea excepțiilor utilizând depanatorul

Configurarea programului de depanare pentru a relua execuția atunci când sunt ridicate excepții non-utilizator

În fereastra Opțiuni de excepție, deschideți meniul contextual făcând clic dreapta pe fereastră, apoi făcând clic pe Afișați coloanele. (Dacă Doar codul meu este dezactivat, această comandă nu este afișată.)

O a doua coloană apare cu numele Acțiuni adiționale. Această coloană afișează mesajul Continuă dacă nu este procesat în codul de utilizator cu excepții specifice. Aceasta înseamnă că programul de depanare nu întrerupe execuția dacă excepția nu este gestionată în codul de utilizator, dar este procesată în cod extern.

De exemplu, aplicația web ASP.NET excepție tratate prin conversia acestora în codul de stare HTTP (manipulare Excepție în ASP.NET API) 500, care poate complica identificarea sursei unei excepții. În exemplul următor, codul de utilizator String.Format) metoda (apeluri. care creează o FormatException. Execuția este întreruptă după cum urmează.

Gestionarea excepțiilor utilizând depanatorul

Adăugarea și eliminarea excepțiilor

Verificați ortografia! Fereastra Setări de excepție nu verifică existența excepției care a fost adăugată. Prin urmare, atunci când intră Sytem.UriTemplateMatchException va ține cont de această excludere (și nu pentru System.UriTemplateMatchException).

Parametrii de excludere sunt stocați în fișierul SUO al soluției și astfel se aplică unei soluții specifice. Parametrii unei excepții specifice nu pot fi reutilizate în soluții. În acest moment, numai excepțiile adăugate sunt salvate. Excepțiile de la distanță nu sunt salvate. Cu alte cuvinte, puteți adăuga o excepție, închideți și redeschideți soluția - excepția va rămâne în ea ca mai înainte. Cu toate acestea, atunci când eliminați o excepție, închideți și redeschideți soluția, excepția apare din nou.

Fereastra Exclude opțiuni acceptă tipuri excepționale generice în C #, dar nu în Visual Basic. Pentru a opri când apare o excepție, cum ar fi MyNamespace.GenericException. trebuie să adăugați o excepție în formularul MyNamespace.GenericException'1. Aceasta înseamnă că, dacă se creează următoarea excepție:







Articole similare

Trimiteți-le prietenilor: