Gestionarea excepțiilor în Python: Gestionarea excepțiilor folosind Try Except

Publicat: 2021-06-29

În timp ce întâmpinați o eroare, un program Python este terminat. Erorile sunt, în general, probleme care apar într-un program care oprește execuția acestuia. Erorile se pot datora unei erori de sintaxă sau pot fi o excepție. Ori de câte ori analizatorul detectează o instrucțiune incorectă, apare o eroare de sintaxă.

Cu toate acestea, atunci când codul cu sintaxa corectă generează o eroare, atunci este cunoscută ca o excepție. În python sunt disponibile diverse excepții încorporate. Acestea sunt generate odată cu apariția unor evenimente interne în care fluxul normal al unui program este schimbat.

Prin urmare, excepțiile pot fi definite ca anumite condiții neobișnuite ale programului care au ca rezultat o întrerupere a codului și, prin urmare, fluxul programului este întrerupt.

Execuția unui program se oprește imediat ce întâlnește o excepție. Acest lucru oprește și mai mult executarea codului. Prin urmare, excepțiile sunt erori ca rezultat al timpului de execuție care nu pot fi gestionate de scriptul python.

Pentru gestionarea excepțiilor în python , limbajul de scripting python oferă o soluție astfel încât execuția codului să continue și să nu existe întreruperi. Absența gestionării excepțiilor oprește executarea codului care există după codul care aruncă o excepție.

Mai multe opțiuni încorporate sunt disponibile în python care permite executarea unui program fără nicio întrerupere, inclusiv excepțiile comune. Pe lângă aceasta, există o prevedere de excepții personalizate python . Pentru orice program python, excepțiile comune care pot fi aruncate sunt:

  • ZeroDivisionError: Acest tip de excepție rezultă atunci când zero este folosit pentru a împărți un număr.
  • NameError: Ori de câte ori un program nu reușește să găsească un nume, fie el global sau local, apare acest tip de excepție.
  • IndentationError: Indentarea incorectă dă naștere indentationError.
  • IOError : Eșecul unei operațiuni de intrare-ieșire are ca rezultat IOError.
  • EOFError: Apare în funcționarea continuă a unui program chiar și atunci când

sfârșitul fișierului este atins.

Cuprins

Ridicarea unei excepții

Pentru a arunca o excepție în anumite condiții se folosește creșterea.
Execuția programului este oprită și excepția asociată este afișată pe ecran. Afișarea excepțiilor permite utilizatorilor să știe care ar putea fi problema de bază.

În python, prin utilizarea clauzei de ridicare, putem ridica o excepție. Aplicația este utilă în cazurile în care programul trebuie oprit prin ridicarea unei excepții.

De exemplu: Se presupune că un program are nevoie de aproximativ 1 GB de memorie pentru execuția sa și încearcă să ocupe 1 GB, în acest caz, pentru a opri executarea programului, poate fi aruncată o excepție.

Sintaxă pentru ridicarea unei excepții:

Exception_class,<valoare>

Prin urmare,

  • „raise” este folosit pentru a ridica o excepție într-un program.
  • O valoare poate fi furnizată unei excepții care poate fi furnizată în paranteză.
  • Accesarea valorii se poate face cu cuvântul cheie „ca”. Valoarea dată excepției poate fi stocată în variabila de referință notată cu „e”.
  • Pentru a specifica un tip de excepție, valoarea poate fi transmisă unei excepții.

AssertionError

O afirmație poate fi făcută în python în loc să lase programul să se blocheze. Se afirmă că o anumită condiție este îndeplinită de program. Programul va continua să ruleze dacă condiția este adevărată. Altfel, o excepție AssertionError este aruncată de program atunci când condiția se dovedește a fi falsă.

Gestionarea excepțiilor prin blocul try and except

Excepțiile aruncate în python sunt capturate și apoi gestionate de blocurile try and except în python. Codul din blocul try este executat în mod normal ca parte a programului. Celălalt bloc include instrucțiuni care sunt executate ca răspuns la excepțiile aruncate de program în blocul try.

Programul aruncă o excepție ori de câte ori întâlnește o eroare într-un cod corect sintactic. Dacă excepțiile aruncate nu sunt gestionate corespunzător, va avea loc o blocare a programelor. În astfel de scenarii, blocul except determină răspunsul programului la acea excepție.

Aplicarea clauzei de încercare și excepție va fi cel mai bine înțeleasă prin următorul exemplu preluat din sursa menționată.

În acest caz, ori de câte ori apare o excepție, programul va continua să ruleze și va informa utilizatorul că programul nu a avut succes, mai degrabă decât să ofere o ieșire goală.

Checkout : Idei și subiecte pentru proiecte Python

Programul a arătat tipul de eroare care a fost aruncat prin apelul funcției. Cu toate acestea, eroarea aruncată de funcție poate fi surprinsă pentru a vă face o idee despre ce a mers prost de fapt.

Rularea codului într-o mașină Windows va genera următoarele

Mesajul afișat indică mai întâi o AssertionError prin care utilizatorul este informat că funcția poate fi executată doar pe un sistem de operare Linux. Al doilea mesaj oferă în continuare informații despre care funcție nu a putut fi executată.
Inexistență dacă fișierul.log va genera o ieșire cu mesajul „Nu s-a putut deschide fișierul.log”.

Programul va continua să ruleze, deoarece este un mesaj care transmite informațiile către utilizator. O mulțime de excepții încorporate sunt disponibile în documentele Python. O excepție așa cum este descrisă este prezentată mai jos.

Inexistența fișierului.log în acest caz va genera următoarea ieșire.

Diferite excepții pot fi prinse prin utilizarea mai multor apeluri de funcție în clauza try. Cu toate acestea, la detectarea unei excepții, declarațiile clauzei try se vor opri.

Clauza else

Utilizarea clauzei else a instrucțiunilor poate ajuta la instruirea programului pentru executarea unui bloc de instrucțiuni numai atunci când nu există excepții.

Clauza else a fost executată doar pentru că nu au existat excepții. Dacă codul conține excepții, va rezulta următoarele.

Excepții personalizate Python

Python are o serie de excepții încorporate care aruncă o eroare ori de câte ori este ceva greșit în program. Cu toate acestea, utilizatorul trebuie să creeze unele excepții personalizate în cazurile în care scopul său este de a fi servit.

O nouă clasă poate fi creată pentru definirea excepțiilor personalizate. Fie direct, fie indirect, aceste clase trebuie să fie derivate din clasa excepțiilor încorporate.

Este creată clasa CustomError definită de utilizator care este moștenită din clasa Exception. Similar celorlalte excepții, și aceste excepții sunt ridicate prin utilizarea „ridicare” cu un mesaj de eroare care este opțional.

Excepțiile definite de utilizator ar trebui plasate într-un fișier separat ori de câte ori există o dezvoltare a unui program python mare. În general, este o practică bună să faceți acest lucru și este urmat de majoritatea modulelor standard în care excepțiile sunt definite separat ca errors.py sau exceptions.py.

Excepțiile personalizate python sunt simple și , deoarece clasele normale implementează totul, ele urmează la fel.

Sintaxă și exemple

Să luăm în considerare două variabile care sunt a și b. Introducerea variabilelor este preluată de la utilizator și se realizează împărțirea numerelor. Acum, dacă numitorul introdus de utilizator este zero.

Pentru gestionarea acestor excepții, blocurile try-except pot fi adăugate la program. Pentru orice tip de cod care duce la suspiciunea de a arunca excepții. Ar trebui să fie plasat în blocul de instrucțiuni try.

Sintaxa unui bloc try

încerca:

#cod

cu excepția excepției 1:

#cod

cu excepția excepției 2:

#cod

#cod

Acesta arată utilizarea instrucțiunilor try-except în care codul este plasat în blocul try și este executat atunci când nu există excepții în cod.

Sintaxa instrucțiunii else cu try-except

încerca

#încercați afirmații

Cu excepția excepției 1

#cod

Altfel

#execuția codului când nu există nicio excepție

Câteva puncte importante:

  • Excepția nu trebuie specificată printr-o declarație de excepție în python.
  • Mai multe excepții pot fi declarate într-un cod prin utilizarea unui bloc try, deoarece pot exista multe instrucțiuni în interiorul unui bloc try care pot arunca excepții de diferite tipuri.
  • Un bloc else poate fi specificat cu un bloc try care este executat atunci când nu există excepții aruncate de blocul try.
  • Blocul else ar trebui să conțină declarații care nu sunt responsabile pentru aruncarea de excepții.

Citește și: Principalele motive pentru care Python este popular printre dezvoltatori

Concluzie

În acest articol, am discutat pe scurt conceptul de gestionare a excepțiilor în python cu câteva exemple. Împreună cu excepțiile încorporate, excepțiile personalizate python sunt, de asemenea, definite pe scurt. Acum, puteți cunoaște importanța excepțiilor și gestionarea excepțiilor în python .

Dacă sunteți interesat să aflați mai multe despre limbajul python și implementarea lui în știința datelor, puteți consulta următorul curs de upGrad „Programul PG executiv în știința datelor”.

Cursul online este conceput pentru toți profesioniștii la nivel de intrare care se încadrează în grupa de vârstă de 21 până la 45 de ani. Cu peste 20 de sesiuni live și cunoștințe practice a peste 14 instrumente și limbaje de programare, cursul vă va ghida către perfecțiune. Orice întrebări ar putea fi trimise prin mesaje. Echipa noastră vă va ajuta.

Câte tipuri de erori există în Python?

Există în principal două categorii de erori distincte în Python - Erori de sintaxă și excepții. Erori de sintaxă: erorile de sintaxă sunt cauzate atunci când orice linie de cod are o sintaxă greșită. Aceasta este cea mai frecventă eroare și este detectată în timpul analizării programului. Erorile includ lipsa unui operator, indentarea necorespunzătoare, greșeala de ortografie a cuvintelor cheie, lipsa două puncte, parantezele lăsate și alte erori minute în sintaxă. Excepții: Excepții sunt erorile care sunt detectate în timpul execuției programului. După ce programul reușește testul de sintaxă, trece printr-o verificare a erorilor logice. Python are o colecție bogată de excepții încorporate. De asemenea, puteți crea excepții personalizate, definite de utilizator.

Care este diferența cheie dintre o eroare de sintaxă și o excepție?

O eroare de sintaxă apare atunci când codul sau o linie de cod este greșită din punct de vedere sintactic. Când apare o eroare de sintaxă într-un cod, programul se termină. O eroare de sintaxă ar putea apărea prin lipsa punctului două puncte sau chiar prin ortografia greșită a unui cuvânt cheie.
Cu toate acestea, excepțiile sunt destul de diferite. O excepție poate fi considerată ca o anomalie care perturbă fluxul programului. Chiar dacă programul este corect din punct de vedere sintactic, poate apărea excepția. Spre deosebire de eroare, codul se execută până la linia în care apare excepția.

Care este rolul cuvântului cheie raise în Python?

Cuvântul cheie raise este folosit pentru a ridica o excepție în Python. Tipul de eroare poate fi, de asemenea, ridicat și puteți adăuga și text pentru a fi afișat în momentul ridicării excepției. Este foarte util atunci când trebuie să vă verificați codul pentru intrări.