Python Gestionarea excepțiilor: încercați, prindeți, în sfârșit și ridicați [Exemplu]
Ce este o gestionare a excepțiilor Python?
O excepție este o eroare care apare în momentul execuției unui program. Cu toate acestea, în timpul rulării unui program, Python generează o excepție care ar trebui gestionată pentru a evita blocarea programului. În Python limba, excepțiile se declanșează automat în cazul erorilor sau pot fi declanșate și interceptate de codul dvs.
Excepția indică faptul că, deși evenimentul poate avea loc, acest tip de eveniment se întâmplă rar. Când metoda nu este capabilă să gestioneze excepția, este trimisă la funcția de apelant. În cele din urmă, atunci când o excepție este eliminată din funcția principală, programul este întrerupt brusc.
Exemple comune de excepție
- Impartirea cu zero
- Accesarea unui fișier care nu există.
- Adăugarea a două tipuri incompatibile
- Încercarea de a accesa un index inexistent al unei secvențe
- Eliminarea tabelului de la serverul de baze de date deconectat.
- Retragere la bancomat mai mare decât suma disponibilă
De ce ar trebui să utilizați excepții?
Iată motivele pentru care se utilizează excepții în Python:
- Gestionarea excepțiilor vă permite să separați codul de gestionare a erorilor de codul normal.
- O excepție este o Python obiect care reprezintă o eroare.
- Ca și în cazul comentariilor de cod, excepțiile vă ajută să vă amintiți de ceea ce se așteaptă programul.
- Clarifică codul și îmbunătățește lizibilitatea.
- Vă permite să stimulați consecințele, deoarece gestionarea erorilor are loc într-un singur loc și într-un singur mod.
- O excepție este o metodă convenabilă pentru gestionarea mesajelor de eroare.
- In Python, puteți ridica o excepție în program folosind metoda de ridicare a excepției.
- Crearea unei excepții vă ajută să întrerupeți execuția curentă a codului și returnează excepția la așteptare până când este gestionată.
- Procesarea excepțiilor pentru componentele care nu le pot gestiona direct.
Regulile excepțiilor
Iată câteva reguli esențiale ale Python gestionarea excepțiilor:
- Excepțiile trebuie să fie obiecte de clasă
- Pentru excepțiile de clasă, puteți utiliza instrucțiunea try cu o clauză except care menționează o anumită clasă.
- Chiar dacă o instrucțiune sau o expresie este corectă din punct de vedere sintactic, poate afișa o eroare atunci când se încearcă executarea acesteia.
- Erorile găsite în timpul execuției sunt numite excepții și nu sunt fatale necondiționat.
Python Mecanism de manipulare a excepțiilor
Gestionarea excepțiilor este gestionată de următoarele 5 cuvinte cheie:
- încerca
- captură
- in cele din urma
- arunca
Python Încercați Statement
O instrucțiune try include cuvântul cheie try, urmat de două puncte (:) și o suită de cod în care pot apărea excepții. Are una sau mai multe clauze.
În timpul execuției instrucțiunii try, dacă nu au apărut excepții atunci, interpretul ignoră gestionatorii de excepții pentru respectiva instrucțiune try.
În cazul în care, dacă apare vreo excepție într-o suită de încercare, suita de încercare expiră și controlul programului se transferă la handlerul cu excepția potrivirii care urmează suita de încercare.
Syntax: try: statement(s)
Declarația de captură
Blocurile Catch iau câte un argument la un moment dat, care este tipul de excepție pe care este probabil să o prindă. Aceste argumente pot varia de la un tip specific de excepție care poate fi variată până la o categorie generală de excepții.
Reguli pentru blocarea capturii:
- Puteți defini un bloc catch folosind cuvântul cheie catch
- Parametrul Catch Exception este întotdeauna inclus în paranteze
- Reprezintă întotdeauna tipul de excepție pe care îl gestionează catch block.
- Un cod de gestionare a excepțiilor este scris între două {} acolade.
- Puteți plasa mai multe blocuri de captură într-un singur bloc de încercare.
- Puteți folosi un bloc catch numai după blocul try.
- Toate blocurile catch ar trebui să fie ordonate de la excepție de la subclasă la superclasă.
Exemplu:
try } catch (ArrayIndexOutOfBoundsException e) { System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) { System.err.printin("Caught second " + e.getMessage()); }
În sfârșit Declarație în Python
În cele din urmă, blocul se execută întotdeauna, indiferent dacă o excepție este aruncată sau nu. Cuvântul cheie final vă permite să creați un bloc de cod care urmează unui bloc try-catch.
În cele din urmă, clauza este opțională. Este destinat să definească acțiunile de curățare care ar trebui să fie cele executate în toate condițiile.
try: raise KeyboardInterrupt finally: print 'welcome, world!' Output Welcome, world! KeyboardInterrupt
În cele din urmă, clauza este executată înainte de instrucțiunea try.
Ridicați declarația în Python
Declarația de ridicare specifică un argument care inițializează obiectul excepție. Aici, o virgulă urmează numele excepției și argumentul sau tuplul argumentului care urmează virgulei.
Sintaxă:
raise [Exception [, args [, traceback]]]
În această sintaxă, argumentul este opțional, iar în momentul execuției, valoarea argumentului excepție este întotdeauna niciuna.
Exemplu:
A Python excepția poate fi orice valoare, cum ar fi un șir, o clasă, un număr sau un obiect. Cele mai multe dintre aceste excepții care sunt ridicate de Python de bază sunt clase cu un argument care este o instanță a clasei.
Important Python Erori
Tipul de eroare | Descriere |
---|---|
ArithmeticError | ArithmeticError acționează ca o clasă de bază pentru toate excepțiile aritmetice. Este ridicat pentru erori în operațiile aritmetice. |
ImportError | ImportError apare atunci când încercați să importați un modul care nu este prezent. Acest tip de excepție apare dacă ați făcut greșeală de tastare în numele modulului sau modulul care nu este prezent în calea standard. |
IndexError | O IndexErroris a apărut atunci când încercați să trimiteți o secvență care este în afara intervalului. |
KeyError | Când o anumită cheie nu este găsită într-un dicționar, este generată o excepție KeyError. |
NameErrore | O NameError este generată atunci când se face referire la un nume în cod care nu există niciodată în spațiul de nume local sau global. |
ValueError | Eroare de valoare este ridicată atunci când o funcție sau o operație încorporată primește un argument care poate fi de tipul corect, dar nu are o valoare adecvată. |
EOFeroare | Acest tip de eroare apare atunci când una dintre funcțiile încorporate (input() sau raw_input()) atinge o condiție EOF fără a citi date. |
ZeroDivisionError | Acest tip de eroare apare atunci când are loc împărțirea sau modulul la zero pentru toate tipurile numerice. |
IOErrore- | Acest tip de eroare apare atunci când o operație de intrare/ieșire eșuează. |
eroare de sintaxă | SyntaxErrors apar atunci când există o eroare în Python sintaxă. |
Eroare de identificare | Această eroare apare atunci când indentarea nu este definită corect |
Alte importante Python excepţii de
Excepție | Descriere |
---|---|
Excepție aritmetică | Eroare aritmetică, cum ar fi împărțirea la zero. |
ArraylndexOutOfBoundsException | Indicele matricei este în afara limitelor. |
ArrayStoreException | Assignment vă ajută să accesați elementul de matrice de tip incompatibil. |
ClassCastException | Distribuție nevalidă |
MlegalMonitorStateException | Operare ilegală a monitorului, cum ar fi așteptarea unui fir deblocat. |
MlegalStateException | Mediul sau aplicația este în stare greșită. |
ClassNotFoundException | Clasa nu a fost găsită. |
CloneNotSupportedException | Încercați să clonați un obiect care nu implementează interfața Cloneable. |
Acces ilegal Excepție | Accesul la o clasă este interzis. |
InstantiationException | Apare atunci când încercați să creați un obiect dintr-o interfață sau clasă abstractă. |
CloneNotSupportedException | Încercați să clonați un obiect care nu implementează interfața. |
Eroare vs. Excepții
Eroare | excepţii de |
---|---|
Toate erorile în Python sunt de tip nebifat. | Excepțiile includ atât tipul bifat, cât și cel nebifat. |
În timpul rulării apar erori care nu sunt cunoscute de compilator. | Excepțiile pot fi recuperate prin manipularea lor cu ajutorul blocurilor try-catch. |
Erorile sunt cauzate în principal de mediul în care rulează o aplicație. | Aplicația în sine provoacă excepții. |
Exemple: OutofMemoryError |
Exemple: Excepții verificate, excepție SQL, NullPointerException etc. |
Rezumat
- O excepție este o eroare care a apărut în timpul execuției unui program.
- Excepția indică faptul că, deși evenimentul poate avea loc, acest tip de eveniment se întâmplă rar.
- Exemple comune de excepție sunt 1) Împărțirea la zero, 2) Accesarea unui fișier care nu există, 3) Adăugarea a două tipuri incompatibile.
- O excepție este o Python obiect care reprezintă o eroare.
- O instrucțiune try include cuvântul cheie try, urmat de două puncte (:) și o suită de cod în care pot apărea excepții. Are una sau mai multe clauze.
- Blocurile Catch iau câte un argument la un moment dat, care este tipul de excepție pe care este probabil să o prindă.
- Declarația de ridicare specifică un argument care inițializează obiectul excepție.
- În cele din urmă, blocul se execută întotdeauna, indiferent dacă o excepție este aruncată sau nu.