Ce este o excepție în Python?
O excepție este o eroare care se întâmplă în momentul executării unui program. Cu toate acestea, în timp ce rulați un program, Python generează o excepție care ar trebui gestionată pentru a evita ca programul dvs. să se blocheze. În limbajul Python, excepțiile se declanșează automat la erori 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, aceasta este aruncată în funcția de apelant. În cele din urmă, când o excepție este eliminată din funcția principală, programul este terminat brusc.
În acest tutorial de manipulare excepțional Python, veți afla:
- Ce este o excepție în Python?
- Exemple comune de excepție
- De ce ar trebui să utilizați excepții?
- Reguli de excepții
- Mecanism de manipulare excepțional
- Declarația Încercați
- Declarația capturii
- Declarația Raise
- Erori Python importante
- Alte excepții Python importante
- Eroare vs. excepții
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 pe serverul de baze de date deconectat.
- Retragere bancomatică mai mare decât suma disponibilă
De ce ar trebui să utilizați excepții?
Iată motivele utilizării excepțiilor în Python:
- Gestionarea excepțiilor vă permite să separați codul de gestionare a erorilor de codul normal.
- O excepție este un obiect Python care reprezintă o eroare.
- Ca și în cazul comentariilor de cod, excepțiile vă ajută să vă reamintiți la ceea ce se așteaptă programul.
- Clarifică codul și îmbunătățește lizibilitatea.
- Vă permite să stimulați consecințe, deoarece gestionarea erorilor are loc la un loc și într-un singur mod.
- O excepție este o metodă convenabilă pentru gestionarea mesajelor de eroare.
- În Python, puteți ridica o excepție în program utilizând metoda de ridicare a excepției.
- Creșterea unei excepții vă ajută să întrerupeți execuția curentă a codului și readuce excepția înapoi la expecție până când este tratată.
- Prelucrarea excepțiilor pentru componentele care nu le pot gestiona direct.
Reguli de excepții
Iată câteva reguli esențiale de gestionare a excepțiilor Python:
- 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 afirmație sau o expresie este corectă din punct de vedere sintactic, aceasta poate afișa o eroare atunci când se încearcă executarea acesteia.
- Erorile găsite în timpul execuției se numesc excepții și nu sunt fatal necondiționate.
Mecanism de manipulare excepțional
Tratarea excepțiilor este gestionată de următoarele 5 cuvinte cheie:
- încerca
- captură
- in cele din urma
- arunca
Declarația Încercați
O declarație try include un cuvânt cheie try, urmat de un punct (:) și o suită de cod în care pot apărea excepții. Are una sau mai multe clauze.
În timpul executării instrucțiunii try, dacă nu au avut loc excepții, interpretul ignoră gestionarele de excepții pentru acea instrucțiune try.
În cazul în care, dacă apare o excepție într-o suită try, suita try expiră și controlul programului se transferă către potrivire, cu excepția handlerului care urmează suitei try.
Syntax:try:statement(s)
Declarația capturii
Blocurile de captură iau câte un argument la un moment dat, care este tipul de excepție pe care este probabil să îl prindă. Aceste argumente pot varia de la un anumit tip de excepție care poate fi variat la o categorie de excepții captive.
Reguli pentru blocarea capturilor:
- Puteți defini un bloc de captură utilizând cuvântul cheie catch
- Parametrul Catch Exception este întotdeauna inclus între paranteze
- Reprezintă întotdeauna tipul de excepție care prinde mânerele blocului.
- Un cod de manipulare a excepțiilor este scris între două {} paranteze.
- Puteți plasa mai multe blocuri de captură într-un singur bloc de încercare.
- Puteți utiliza un bloc de captură numai după blocul de încercare.
- Toate blocurile de captură ar trebui să fie comandate de la excepția subclasei la superclase.
Exemplu:
try}catch (ArrayIndexOutOfBoundsException e) {System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {System.err.printin("Caught second " + e.getMessage());}
În cele din urmă Blochează
Î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ă un bloc try-catch.
În cele din urmă, clauza este opțională. Se intenționează definirea acțiunilor de curățare care ar trebui să fie cele executate în toate condițiile.
try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt
În cele din urmă, clauza este executată înainte de instrucțiunea try.
Declarația Raise
Instrucțiunea raise specifică un argument care inițializează obiectul de excepție. Aici, o virgulă urmărește numele excepției și argumentul sau tuplul argumentului care urmează virgulei.
Sintaxă:
raise [Exception [, args [, traceback]]]
În această sintaxă, argumentul este opțional și, în momentul executării, valoarea argumentului de excepție este întotdeauna niciuna.
Exemplu:
O excepție Python poate fi orice valoare, cum ar fi un șir, o clasă, un număr sau un obiect. Majoritatea acestor excepții care sunt ridicate de nucleul Python sunt clase cu un argument care este o instanță a clasei.
Erori Python importante
Tipul de eroare | Descriere |
ArithmeticError | Aritmetica Eroarea acționează ca o clasă de bază pentru toate excepțiile aritmetice. Este ridicat pentru erori în operații aritmetice. |
ImportError | ImportError este activat 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șeli de tastare în numele modulului sau modulul care nu este prezent în calea standard. |
IndexError | Un IndexError apare atunci când încercați să consultați o secvență care este în afara intervalului. |
KeyError | Când o anumită cheie nu este găsită într-un dicționar, se ridică o excepție KeyError. |
NameError | O NameError este ridicată atunci când un nume este menționat într-un cod care nu există niciodată în spațiul de nume local sau global. |
ValueError | Eroarea valorii este ridicată atunci când o funcție sau o operație încorporată primește un argument care poate fi de tip corect, dar nu are o valoare adecvată. |
EOFerror | Acest tip de eroare crește atunci când una dintre funcțiile încorporate (input () sau raw_input ()) ajunge la o condiție EOF fără a citi date. |
ZeroDivisonError | Acest tip de eroare ridicată când are loc divizarea sau modulul cu zero pentru toate tipurile numerice. |
IOError- | Acest tip de eroare a apărut atunci când o operațiune de intrare / ieșire eșuează. |
eroare de sintaxă | Sintaxă Erori ridicate atunci când există o eroare în sintaxa Python. |
IndentationError | Această eroare a apărut atunci când indentarea nu este definită corect |
Alte excepții Python importante
Excepție | Descriere |
Excepție aritmetică | Eroare aritmetică, cum ar fi divizarea la zero. |
ArraylndexOutOfBoundsException | Indicele matrice este în afara limitelor. |
ArrayStoreException | Atribuirea vă ajută la elementul matrice de tip incompatibil. |
ClassCastException | Distribuție nevalidă |
MlegalMonitorStateException | Funcționare ilegală a monitorului, cum ar fi așteptarea pe un fir deblocat. |
MlegalStateException | Mediul sau aplicația se află în stare greșită. |
ClassNotFoundException | Clasa nu a fost găsită. |
CloneNotSupportedException | Încercați să clonați un obiect care nu implementează interfața clonabilă. |
Excepție de acces ilegal | Accesul la o clasă este refuzat. |
InstantiationException | Apare atunci când încercați să creați un obiect al unei interfețe sau clase abstracte. |
CloneNotSupportedException | Încercați să clonați un obiect care nu implementează interfața. |
Eroare vs. excepții
Eroare | Excepții |
Toate erorile din Python sunt de tip nebifat. | Excepțiile includ atât tipul bifat, cât și tipul nebifat. |
Erorile apar la timpul de execuție necunoscut compilatorului. | Excepțiile pot fi recuperate prin manipularea acestora 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 bifate, excepție SQL, NullPointerException etc. |
rezumat
- O excepție este o eroare care a avut loc în timpul executării unui program.
- Excepția indică faptul că, deși evenimentul poate avea loc, acest tip de eveniment se întâmplă rar.
- Exemple obișnuite de excepție sunt 1) împărțirea după zero, 2) accesarea unui fișier care nu există, 3) adăugarea a două tipuri incompatibile.
- O excepție este un obiect Python care reprezintă o eroare.
- O declarație try include un cuvânt cheie try, urmat de un punct (:) și o suită de cod în care pot apărea excepții. Are una sau mai multe clauze.
- Blocurile de captură iau câte un argument la un moment dat, care este tipul de excepție pe care este probabil să îl prindă.
- Instrucțiunea raise specifică un argument care inițializează obiectul de excepție.
- În cele din urmă, blocul se execută întotdeauna, indiferent dacă o excepție este aruncată sau nu.