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.

def this_fails():<br />

... x = 1/0<br />

...<br />

>>> try:<br />

... this_fails()<br />

... except ZeroDivisionError, detail:<br />

... print ’Handling run-time error:’, detail<br />

...<br />

Handling run-time error: integer division or modulo<br />

8.4 Generarea excepţiilor<br />

Instrucţiunea raise îi permite programatorului să genereze o anumită excepţie :<br />

>>> raise NameError, ’HiThere’<br />

Traceback (most recent call last):<br />

File "", line 1, in <br />

NameError: HiThere<br />

Primul parametru reprezintă tipul excepţiei, iar al doilea este opţional şi reprezintă un eventual argument.<br />

Dacă se vrea să se stie când o excepţie a fost semnalată, dar nu se intenţionează tratarea ei, o formă mai simplificataă<br />

a instrucţiunii raise permite reapariţia excepţiei :<br />

>>> try:<br />

... raise NameError, ’HiThere’<br />

... except NameError:<br />

... print ’An exception flew by!’<br />

... raise<br />

...<br />

An exception flew by!<br />

Traceback (most recent call last):<br />

File "", line 2, in <br />

NameError: HiThere<br />

8.5 Excepţii definite de utilizator<br />

Un programator îşi poate crea propriile excepţii prin creare unei clase de excepţii noi. În mod obişnuit excepţiile<br />

pot fi derivate din clasa Exception atât în mod direct cât şi indirect. De exemplu :<br />

54 Capitolul 8. Erori şi excepţii

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

Saved successfully!

Ooh no, something went wrong!