Python > Les exceptions

Intercepter une exception

Lorsqu'une exception est levée, le programme est interrompu et l'interpréteur remonte en sens inverse toutes les couches de code précédemment traversées, à la manière d'une bulle d'air qui remonte dans l'eau. Arrivée à la surface, l'exception est affichée et le programme s'arrête.

Il est cependant possible de stopper cette remontée en interceptant l'erreur, avec la directive try...except.

>>> print 2/0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
>>>
>>> try:
...     print 2/0
... except:
...     print 'Une erreur est survenue'
...
Une erreur est survenue

La méthode précédente a un inconvénient majeur : il est impossible de savoir quel type d'erreur est survenue et peut masquer silencieusement toutes les erreurs. La bonne façon de procéder est d'intercepter uniquement les erreurs qui sont possibles et attendues.

>>> try:
...     print 2/0
... except ZeroDivisionError:
...     print 'Division par zéro'
...
Division par zéro
`

Sylvain Boureliou - sylvain.boureliou@gmail.com - www.boureliou.com