Cuprins
Când realizăm un program, de multe ori există situații în care un utilizator poate declanșa un comportament neobișnuit al algoritmului nostru, mai ales atunci când depindem de introducerea datelor de către respectivul utilizator, pentru aceasta multe limbaje de programare implementează excepții ca un mecanism pentru a preveni explozia și eșuarea programului nostru, generând o situație mai gravă, expunând date sensibile publicului.Ce este o excepție?
În Piton o excepție este un obiect care, dacă nu este manipulat într-un fel, duce la sfârșitul programului și afișează un traceback din eroarea care a provocat acea excepție, un exemplu de cum arată o excepție într-un Piton O putem vedea în următoarea captură de ecran:
Deși această excepție este un exemplu foarte de bază, ne oferă un fundal teoretic destul de important, indică faptul că este o instanță a unei clase și aceste instanțe pot fi generate și capturate în moduri diferite, permițând să surprindă eroarea și să facă ceva în cadrul fluxul programului evitând astfel încetarea bruscă a acestuia, cu care programul nostru ar fi mult mai stabil.
Ridicarea unei excepții
După cum am putut vedea în paragrafele anterioare, excepțiile sunt ridicate automat în multe cazuri, cu toate acestea le putem ridica și noi înșine pentru a obține un control mai mare al programului.
Pentru a ridica o excepție folosim comanda a ridica care ia ca argument fie o clasă, fie un obiect, atunci când folosim o clasă, o instanță a acesteia este generată automat, putem folosi chiar și un argument de tip șir după clasa separată printr-o virgulă.
Să vedem câteva exemple folosind clasa inclusă în Piton numit Excepție :
Cu acest cod putem ridica o excepție:
>>> ridicați excepția Traceback (ultimul apel cel mai recent): fișierul "", linia 1, în? Excepție
Pur și simplu sunăm a ridica și am trecut de clasă ExcepțieDupă cum putem vedea, nu este deloc complicat, să vedem alte coduri.
>>> ridicați Excepția, 'hyperdrive overload' Traceback (ultimul apel cel mai recent): Fișier "", linia 1, în? Excepție: supraîncărcare hyperdrive
În aceste două cazuri suplimentare trecem un parametru suplimentar de tip șir, așa cum putem vedea, o putem face fie prin separarea cu virgulă, fie ca argument al clasei.
Să vedem o listă cu câteva dintre excepțiile care apar în mod implicit în Piton:
- Excepție: Clasa rădăcină pentru toate excepțiile.
- AttributeError: Ridicat atunci când o referință sau atribuirea atributului eșuează.
- IOError: Ridicat atunci când încercați să deschideți un fișier care nu există.
- IndexError: Ridicat când se folosește un index sau o secvență inexistentă.
- KeyError: Ridicat când este mapată o cheie inexistentă.
- NameError: Ridicat atunci când numele unei variabile nu este găsit.
- Eroare de sintaxă: Ridicat când codul este format prost.
- Eroare de scris: Ridicat când o operație sau o funcție este aplicată unui obiect de tip greșit.
- ValueError: Ca și în cazul anterior, dar în loc să se aplice tipului, se aplică valorii obiectului.
- ZeroDivisionerror: Ridicat atunci când al doilea argument al unei diviziuni este zero.
Deși excepțiile care vin înăuntru Piton Acestea acoperă deja un domeniu extins în funcționalitățile de care am putea avea nevoie, există momente în care trebuie pur și simplu să ne creăm propriile excepții pentru a ne conforma programelor noastre, să vedem un exemplu:
clasa SomeCustomException (Excepție): pass
Pur și simplu creăm o clasă ca oricare alta și apoi moștenim de la clasă Excepție pentru a crea excepția noastră personalizată.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