Les exceptions en Python ( Try Except )

1 Étude d'un exemple




Considérons le code suivant qui permet de calculer le quotient de deux nombres a et b:

a = int(input("Tapez la valeur de a : ")) 
b = int(input("Tapez la valeur de b : ")) 
print("Le quotient de a par b est : a/b = " , a/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

  1. 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.
  2. Le bloc except, vous permet de gérer l'erreur.
  3. 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:

a = int(input("Tapez la valeur de a : "))
b = int(input("Tapez la valeur de b : "))
try:
    print("Le quotient de a par b est : a/b = " , a/b)
except:
    print("Veuillez choisir une valeur b non nulle !")

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 :

try:
    age = int(input("Veuille saisir votre age"))  
    if age < 18:  
        raise ValueError
    else:  
        print("age valide")  
except :  
    print("age non valide !")

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:

try:
    # bloc de code pouvant probablement lever une exeption
finally:
    # bloc de code qui sera toujours exécuté
         




 

Younes Derfoufi
CRMEF OUJDA

1 thought on “Les exceptions en Python ( Try Except )

Leave a Reply