You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
CAPITOLUL<br />
OPT<br />
Erori şi excepţii<br />
Până acum erorile au fost doar menţionate, dar dacă aţi încercat exemplele prezentate probabil aţi şi întâlnit câteva<br />
dintre ele. Există (cel puţin) două categorii de erori: erori de sintaxă şi excepţii.<br />
8.1 Erori de sintaxă<br />
Erorile de sintaxă sunt cel mai des întâlnite, atâta timp cât sunteţi un începător în limbajul <strong>Python</strong>:<br />
>>> while 1 print ’Hello world’<br />
File "", line 1, in <br />
while 1 print ’Hello world’<br />
^<br />
SyntaxError: invalid syntax<br />
Interpretorul reproduce linia care a cauzat eroarea şi afişează o săgeată în dreptul instrucţinii care a generat-o.<br />
Eroarea este cauzată (sau cel puţin detectată) de instrucţiunea dinaintea săgeţii. În exemplul de mai sus eroarea<br />
este generată de instrucţiunea print, deoarece înaintea acestei instrucţiuni ar trebui să existe un caracter ’:’.<br />
Numele fişierului şi numărul liniei care a generat eroarea sunt afişate, astfel încât dacă eroarea provine dintr-un<br />
script să o puteţi corecta cât mai comod.<br />
8.2 Excepţii<br />
Chiar dacă o expresie sau o instrucţiune este corectă din punct de vedere sintactic, aceasta poate genera o eroare<br />
în momentul în care este executată. Erorile generate (detectate) în timpul execuţiei se numesc excepţii şi nu sunt<br />
neapărat fatale. Veţi întreba cum puteţi evita astfel de erori utilizând limbajul <strong>Python</strong>.<br />
Majoritatea excepţiilor nu sunt tratate de program şi generează mesaje de eroare ca în exemplul de mai jos:<br />
>>> 10 * (1/0)<br />
Traceback (most recent call last):<br />
File "", line 1, in <br />
ZeroDivisionError: integer division or modulo by zero<br />
>>> 4 + spam*3<br />
Traceback (most recent call last):<br />
File "", line 1, in <br />
NameError: name ’spam’ is not defined<br />
>>> ’2’ + 2<br />
Traceback (most recent call last):<br />
File "", line 1, in <br />
TypeError: cannot concatenate ’str’ and ’int’ objects<br />
Ultima linie a mesajului de eroare indică ce s-a întâmplat. Excepţiile sunt de diferite tipuri, iar tipul excepţiei este<br />
51