Support de Cours
PYTHON
Les exceptions
Pr. Sofia Douda
Département de Math & Info
FST de Settat.
1
Les exceptions en Python
En cas d'erreur ou d'exception, Python s'arrête normalement et génère un
message d'erreur.
Ces exceptions peuvent être gérées à l'aide de l' instruction try suivante:
var=7 try:
try: print(var)
print(var) except:
except: print("Une erreur est survenue")
print("Une erreur est finally:
survenue") print("Fin de gestion d'exception")
finally:
print("Fin de gestion
d'exception")
Une erreur est survenue
Fin de gestion d'exception
7
Fin de gestion d'exception Car var n'est pas définie
Pr. Sofia Douda
2
Les exceptions en Python
Le bloc try : permet de tester si un bloc de code contient des erreurs.
Le bloc except : permet de gérer l'erreur.
Le bloc finally : permet d'exécuter un code, quel que soit le résultat des
blocs try et except.
try:
#bloc try
except:
# bloc except
finally:
#bloc finally
Pr. Sofia Douda
3
Les exceptions en Python
>>> def div(a,b):
return(a/b)
>>> div(7,2)
3.5
>>> div(7,0)
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
div(7,0)
File "<pyshell#6>", line 2, in div
return(a/b)
ZeroDivisionError: division by zero
>>>
On va capturer cette exception
Pr. Sofia Douda
4
Les exceptions en Python
>>> def div(a,b):
try:
print(a/b)
except ZeroDivisionError:
print("Vous avez une division par zéro")
print("Suite")
>>> div(7,2)
3.5
Suite
>>> div(7,0)
Vous avez une division par zéro
Suite
>>>
Pr. Sofia Douda
5
Les exceptions en Python
>>> div(7,'0') Si on appelle avec
Traceback (most recent call last): un argument de type str
File "<pyshell#15>", line 1, in <module>
div(7,'0')
File "<pyshell#11>", line 3, in div
print(a/b)
TypeError: unsupported operand type(s) for /: 'int' and 'str'
Dans ce cas, on peut gérer plusieurs exceptions
>>> div(7,1)
>>> def div(a,b): 7.0
try: Suite
print(a/b) >>> div(7,0)
except ZeroDivisionError: Vous avez une division
print("Vous avez une division par zéro") par zéro
except TypeError: Suite
print("Il faut un int") >>> div(7,'5')
print("Suite") Il faut un int
Suite
>>>
Pr. Sofia Douda
6
Les exceptions en Python
On peut déclencher une exception, on utilisant l'instruction raise:
>>> x = "Python"
>>> if not type(x) is int:
raise TypeError("Seuelement les entiers sont
permis")
Traceback (most recent call last):
File "<pyshell#29>", line 2, in <module>
raise TypeError("Seuelement les entiers sont
permis")
TypeError: Seuelement les entiers sont permis
>>>
Pr. Sofia Douda
7