28.01.2015 Views

Tutorial Python - Starship

Tutorial Python - Starship

Tutorial Python - Starship

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!