Cuprins
Odată ridicată o excepție, este de datoria noastră să o putem gestiona, în acest fel programul nostru va putea executa o acțiune, va ridica un mesaj, va solicita corectarea parametrului introdus de utilizator, pe scurt, multe posibilități .Prinderea excepțiilor
Așa cum am menționat mai devreme, ceea ce este important atunci când vedem o excepție este să o putem prinde în acest fel, putem decide ce ar trebui să facă programul odată ce apare această situație, pentru a face acest lucru vom folosi comenzile încercați / cu excepția. Pentru a demonstra cele de mai sus, vom analiza un program de diviziune foarte simplu, deoarece știm că nu putem împărți un număr la 0, deci acest lucru va ridica o excepție.
Să începem să ne construim codul, ne amintim că putem face acest lucru în orice editor de text și trebuie să salvăm fișierul cu o extensie .py, astfel încât să-l putem executa pe linia de comandă sau consolă.
x = input ('Introduceți primul număr:') y = input ('Introduceți al doilea număr:') print x / y [/ size] [size = 4]
Acest lucru va funcționa destul de corect până când utilizatorul introduce valoarea 0 ca al doilea argument, acest lucru va ridica o excepție așa cum putem vedea în următoarea imagine a rulării acestui program:
Putem preveni acest lucru folosind încercați / cu excepția pe care l-am văzut la începutul acestei secțiuni, să vedem codul nostru corectat:
try: x = input ('Introduceți primul număr:') y = input ('Introduceți al doilea număr:') print x / y exceptând ZeroDivisionerror: print "Al doilea număr nu poate fi zero!"
Acest mod de a trata acest caz este destul de curat, în ciuda a tot ce s-ar putea spune, de asemenea, cu un simplu dacă care ar condiționa ca valoarea Da Nu ar fi 0 ar fi o soluție adecvată, cu toate acestea, dacă am adăuga mai multe divizii la programul nostru, am avea nevoie de mai multe condiționalități, în schimb, în acest mod, vom avea nevoie doar de un singur gestionar al excepției posibile care este generată.
Prindeți mai multe excepții
Continuând cu exemplul diviziunii la care am lucrat, să vedem ce s-ar întâmpla dacă în loc de 0 introducem altceva:
În imagine putem vedea că a fost introdus un text și un handler care se aștepta doar la o excepție de tip ZeroDivisionerror nu a putut face o manipulare adecvată, deoarece nu știa ce să facă cu noua excepție generată.
Pentru a prinde noua excepție, vom adăuga pur și simplu un bloc nou cu exceptia pentru a putea gestiona excepția Eroare de scris care se generează prin împărțirea unui număr la un text.
Să vedem codul corectat:
try: x = input ('Introduceți primul număr:') y = input ('Introduceți al doilea număr:') print x / y exceptând ZeroDivisionerror: print "Al doilea număr nu poate fi zero!" cu excepția TypeError: print "Nu a fost un număr, nu-i așa?"
Dacă am fi ales să folosim condiționali dacă, această sarcină ne-ar fi luat mai multe linii de cod, în afară de a face programul nostru mai puțin lizibil.
Prinderea a două excepții în același bloc
Dacă ceea ce avem nevoie este să prindem mai multe excepții într-un singur bloc cu exceptia ceea ce trebuie să facem este să le adăugăm în declarația dintr-o paranteză, să vedem codul pentru a-l înțelege mai bine:
[/ size] try: x = input ('Enter the first number:') y = input ('Enter the second number:') print x / y except ZeroDivisionerror: print "Al doilea număr nu poate fi zero!" cu excepția TypeError: [/ size] [size = 4] print "Nu a fost un număr, nu-i așa?"
După cum am putut vedea, orice s-ar întâmpla, aplicația va continua să ne trimită același mesaj indiferent dacă este introdus un 0 sau este introdus altceva decât un număr.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv