Exceptions en Python
Aller à la navigation
Aller à la recherche
En python on a pas un "try catch
" mais un "try: except:
".
C'est python il faut pas faire comme les autres.
Avec le code :
a=0
b=1/a
On récupère un :
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
Normal! Mais si on fait :
a=0
try:
b=1/a
except:
print ("erreur")
on a bien une erreur "propre" Il y a une clause "else" pour les exceptions.
a=1
try:
b=1/a
except:
print ("error")
else:
print ("so far so good")
Pour dire qu'il n'y a pas d'exception... On peut aussi réagir de façon différente en fonction des erreurs :
try:
a=1/0
except ZeroDivisionError:
print ("division par zero")
except:
print ("une autre erreur")
Affiche bien "division par zero", alors que :
try:
a=1/b
except ZeroDivisionError:
print ("division par zero")
except:
print ("une autre erreur")
Nous donne "une autre erreur".