Python Tratarea excepțiilor: try, except, finally, raise

⚡ Rezumat inteligent

Python Gestionarea excepțiilor permite programului să răspundă la erorile de execuție în loc să se blocheze. Aici veți învăța cum funcționează comenzile try, except, finally și raise, de ce contează excepțiile și tipurile comune de erori încorporate pe care le veți întâlni.

  • ⚠️ Ce este: O excepție este o eroare de execuție care Python crește când ceva nu merge bine.
  • 🛡️ încercați / cu excepția: Un bloc try rulează cod riscant; except interceptează și gestionează excepția.
  • 🧹 in cele din urma: Un bloc finally rulează întotdeauna, indiferent dacă a apărut sau nu o excepție.
  • 🚀 a ridica: Instrucțiunea raise vă permite să declanșați o excepție în mod intenționat.
  • 📋 Tipuri de erori: Excepțiile comune includ ValueError, KeyError, IndexError și ZeroDivisionError.
  • 🤖 Ajutor AI: Instrumentele de inteligență artificială precum Copilot generează blocuri try-except și sugerează tipuri de erori.

Python Manipularea excepție

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 Eroarea ImportError este generată 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 erori.ping eroare în numele modulului sau modul 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 al unei interfețe sau abstracclasa t.
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.

Întrebări frecvente

Tratarea excepțiilor este procesul de răspuns la erorile de execuție, astfel încât programul să nu se blocheze. Python folosește blocurile try și except pentru a detecta excepțiile și a rula în schimb cod de recuperare.

Code care ar putea eșua intră într-un bloc try. Dacă apare o excepție, Python sare la blocul except corespunzător, care gestionează eroarea și permite programului să continue.

Un bloc finally rulează indiferent dacă a fost sau nu generată o excepție, deci este ideal pentru sarcini de curățare precum închiderea fișierelor sau eliberarea resurselor care trebuie să aibă loc întotdeauna.

Instrucțiunea raise declanșează o excepție în mod intenționat. Puteți declanșa o excepție încorporată, cum ar fi ValueError, sau una personalizată, pentru a semnala că a apărut o condiție de eroare.

Erorile, precum o eroare SyntaxError, de obicei nu pot fi recuperate și nu pot opri programul. Excepțiile sunt evenimente de execuție pe care le puteți detecta și gestiona cu blocurile try și except.

Asistenții de inteligență artificială, precum GitHub Copilot, completează automat blocurile try-except, sugerează tipul corect de excepție de detectat și generează cod de curățare finală dintr-o scurtă descriere a logicii tale.

Da. Instrumentele bazate pe inteligență artificială pot automatiza încapsulareaping cod riscant în blocurile try-except, recomandă excepții specifice în locul excepțiilor simple și adaugă jurnalizare pentru a facilita depanarea erorilor.

Excepțiile comune încorporate includ ValueError, TypeError, KeyError, IndexError, ImportError, NameError și ZeroDivisionError. Fiecare semnalează un anumit tip de problemă de execuție din codul dvs.

Rezumați această postare cu: