17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

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.

140<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

Division par zéro<br />

>>> 7 / 0<br />

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

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

ZeroDivisionError: integer division or modulo by zero<br />

Le message affiché contient en général le traceback, c’est-à-dire la pile d’appel, le<br />

type d’exception levée et enfin un message explicite sur le problème rencontré. La<br />

pile d’appel est le chemin parcouru par l’interpréteur pour atteindre l’erreur, soit la<br />

liste des méthodes et fonctions traversées pour atteindre l’erreur.<br />

Pour lever une exception, il suffit d’utiliser la directive raise suivie d’une classe ou<br />

d’une instance de classe.<br />

Utilisation d’une classe d’exception<br />

>>> class BrokenCode:<br />

... pass<br />

...<br />

>>> def func():<br />

... raise BrokenCode()<br />

...<br />

>>> func()<br />

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

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

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

__main__.BrokenCode: <br />

BON À SAVOIR Exceptions de type string<br />

Le support des exceptions de type string (comme raise 'erreur !') a été supprimé depuis<br />

Python 2.6.<br />

Même si tout type de classe peut servir dans une exception, il est recommandé d’utiliser<br />

ou de spécialiser les classes d’exceptions fournies dans Python et présentées dans<br />

la prochaine section.<br />

Exceptions du langage<br />

Python propose une liste de classes d’exception directement accessibles sans directive<br />

d’importation, et utilisées par le langage. Les classes sont organisées en deux<br />

niveaux :<br />

La première couche contient un ensemble de classes de base qui ne sont jamais<br />

directement appelées.

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

Saved successfully!

Ooh no, something went wrong!