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:

  1. încerca
  2. captură
  3. in cele din urma
  4. 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.