1 Étude d'un exemple
Considérons le code suivant qui permet de calculer le quotient de deux nombres a et b:
Si vous exécutez le code ci-dessus en donnant a = 6 et b = 3, le programme renvoie :
Le quotient de a par b est : a/b = 2.0
L'exécution ne rencontre aucun problème! Mais si l'utilisateur donne a = 6 et b = 0 le programme renvoie le message d'erreur :
builtins.ZeroDivisionError: division by zero.
En plus l’interpréteur python arrête l'exécution du code !
Afin d’éviter ce message d'erreur, et continuez à exécuter la suite du code, on utilise la structure Try ... except
- Le bloc try permet de tester un bloc de code s'il contient des erreurs ou non et ne l'exécute que s'il ne contient aucune erreur! Dans le cas contraire le programme ignore la totalité du code dans ce bloc et passe au bloc suivant except.
- Le bloc except, vous permet de gérer l'erreur.
- Le bloc finally, vous permet d'exécuter du code, quel que soit le résultat des blocs try et except.
2 - Gestion des exceptions
Lorsqu'une erreur se produit, ou exception comme nous l'appelons, 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:
Dans ce cas si vous donnez a = 6 et b = 0, le programme ignore le code du bloc try après avoir détecté une erreur et passe automatiquement au code du bloc except et renvoie donc:
Veuillez choisir une valeur b non nulle !
3 - Exception utilisant l'instruction raise
On peut se demander maintenant s'il est possible de lever une exception sans rencontrer une erreur. Exemple pour un programme qui demande à l'utilisateur de tapez son age et de lever une exception si l'age est < 18 ans ! Bien entendu un age tapé qui est inférieur à 18 ans est une opération qui ne contient aucune erreur, et pourtant on peut quand même en lever une :
4 - L'instruction finally
L'instruction finally est utilisée pour exécuter des instructions quelque soit les erreurs générées ou non. Dans tous les cas (présence d'erreurs ou non ! ) l'instruction déclarée dans le block finally sera executée.
Syntaxe:
Younes Derfoufi
CRMEF OUJDA
1 thought on “Les exceptions en Python ( Try Except )”