Académique Documents
Professionnel Documents
Culture Documents
Les exceptions
1- Introduction
De nombreux langages de programmation de haut niveau possèdent un mécanisme permettant de gérer
les erreurs qui peuvent intervenir lors de l’exécution d’un programme. Le mécanisme de gestion d’erreur le
plus répandu est celui des exceptions.
La gestion des exceptions est un mécanisme de contrôle des erreurs d’exécution.
>>> print(55/0)
ZeroDivisionError : division by zero
Le message d'erreur comporte deux parties séparées par un double point : d'abord le type d'erreur
ZeroDivisionError, et ensuite une information spécifique de cette erreur division by zero.
>>> L=[4,2,7]
>>> print(L[4])
IndexError: list index out of range
>>> f=open("toto.txt","r")
FileNotFoundError: [Errno 2] No such file or directory: 'toto.txt'
2- Syntaxe
try:
Le bloc d'instructions de try est exécuté par Python sous
Traitement_try réserve.
Si une exception se produit, le reste de la clause try est
except [NomException1]:
ignorée.
Traitement_Exception1 Si une erreur survient, alors Python exécute le bloc qui suit
except.
[except NomException2: Si aucune erreur ne s'est produite, c'est le bloc de else qui est
exécuté.
Traitement_Exception2 Si une exception ne correspond pas à l’exception dans la
clause except, Python affichera un message d’erreur.
except NomException3:
la clause finally est toujours exécutée.
Traitement_Exception3
else:
Traitement_else
finally:
Traitement_finally ]
Exceptions 1 M.Gueroihi
3- Exemple
>>> divise(3,4)
le resultat est 0.75
exécution terminée
>>> divise(4,0)
erreur de division par zéro!
exécution terminée
>>> divise(4,"cpge")
erreur de type!
exécution terminée
Syntaxe:
Exemple1:
#programme principal
tab=[6,9,4,5,2]
try:
for i in range(1,10):
if (i > 4): raise IndexError
print(tab[i], end= ' ')
except IndexError:
print( " Erreur : indice hors limite")
Exceptions 2 M.Gueroihi
Exemple 2
5- L'instruction assert
Les assertions sont un moyen simple de s'assurer, avant de continuer, qu'une condition est respectée.
Syntaxe:
assert test
Exemple:
Exercices
Exercice1
Ecrire un script qui calcule la racine carrée d'un nombre, avec gestion des exceptions.
Par exemple :
>>>
Entrer un nombre : go
go n'est pas un nombre valide !
Entrer un nombre : -5.26
-5.26 n'est pas un nombre valide !
Entrer un nombre : 16
La racine carrée de 16.0 est : 4.0
>>>
Exceptions 3 M.Gueroihi
Exercice 2
Soit le script :
i = 0
while True:
i += 1
print(i)
>>>
1
...
1216
1217
1218
1219
1220
Traceback (most recent call last):
raise KeyboardInterrupt
KeyboardInterrupt
>>>
Exercice 3 :
Il s’agit d’écrire une fonction de saisie qui prendra en paramètre un entier n et renverra une valeur
comprise entre 1 et n, tapée au clavier par l’utilisateur.
Les différentes erreurs qui pourront se produire seront :
- n est inférieur à 1.
- l’utilisateur a entré un nombre qui n’est pas compris entre 1 et n
- l’utilisateur n’a pas entré un nombre
Chaque erreur devra être détectée par la fonction et être signalée par une exception spécifique.
Exceptions 4 M.Gueroihi