Les Exceptions en Python

1. A propos des exceptions en Python

Les exceptions en Python sont des événements qui se produisent pendant l'exécution d'un programme et qui interrompent le flux normal d'instructions. Lorsqu'une exception survient, le programme cherche un gestionnaire d'exception approprié pour la traiter. Si aucun gestionnaire n'est trouvé, le programme s'arrête et affiche une trace d'erreur.En Python, les exceptions sont gérées via des blocs try-except. Les erreurs peuvent être prévues (comme une division par zéro) ou imprévues (comme l'accès à un indice invalide dans une liste).

2. Etude 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

  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.

3. Gestion des esceptions

Lorsque l'exécution d'un programme en Python rencontre une erreur, également appelée exception, le flux normal du programme est interrompu, et Python génère un message d'erreur pour indiquer la nature du problème. Ce mécanisme permet d'identifier et de signaler des conditions anormales pendant l'exécution du programme.
La gestion des exceptions en Python se fait à l'aide de l'instruction try. L'idée est de mettre le code susceptible de générer une exception dans un bloc try, et de spécifier comment traiter cette exception dans un bloc except associé. Ainsi, le programme peut anticiper des erreurs potentielles et prendre des mesures pour y faire face, plutôt que de simplement s'arrêter brusquement.

Exemple

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 !



4. 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 :

5. 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

6. Quiz

Exercice 1
Qu'est-ce qu'une exception en Python ?

a) Une erreur de logique dans le code.
b) Un avertissement du linter.
c) Un événement anormal qui se produit pendant l'exécution et interrompt le flux normal du programme.
d) Une erreur due à une indentation incorrecte.

Exercice 2
Quel est le mot-clé utilisé pour gérer les exceptions en Python ?

a) catch
b) exception
c) try
d) handle

Exercice 3
Que fait le bloc except dans une structure try-except ?

a) Exécute le code à risque.
b) Exécute le code seulement s'il n'y a pas d'exception.
c) Exécute le code spécifié en cas d'exception.
d) Génère une exception.

Exercice 4
Quel est l'objectif du bloc finally dans une structure try-finally ?

a) Exécute le code seulement s'il n'y a pas d'exception.
b) Exécute le code à risque.
c) Exécute le code spécifié en cas d'exception.
d) Exécute le code quel que soit le résultat du bloc try (avec ou sans exception).

Exercice 5
Comment spécifiez-vous le type d'exception que vous voulez gérer dans le bloc except ?

a) except ErrorType:
b) catch ErrorType:
c) except ExceptionType:
d) catch ExceptionType:

Exercice 6
Que fait le bloc else dans une structure try-except ?

a) Exécute le code seulement s'il n'y a pas d'exception.
b) Exécute le code à risque.
c) Exécute le code spécifié en cas d'exception.
d) Exécute le code quel que soit le résultat du bloc try (avec ou sans exception).

Exercice 7
Quelle est la principale raison d'utiliser des exceptions en Python ?

a) Améliorer la performance du programme.
b) Simplifier la syntaxe du code.
c) Gérer des situations d'erreur de manière élégante.
d) Faciliter la lecture du code.

Exercice 8
Comment pouvez-vous créer une exception personnalisée en Python ?

a) En utilisant le mot-clé exception.
b) En levant une exception avec raise.
c) En utilisant try et except uniquement.
d) En utilisant catch et throw.

Exercice 9
Quelle exception est levée lorsqu'on tente de diviser par zéro ?

a) ZeroDivisionError
b) ValueError
c) TypeError
d) MathError

Exercice 10
Que se passe-t-il si aucune exception n'est levée dans le bloc try d'une structure try-except ?

a) Le programme s'arrête.
b) Le bloc except est exécuté.
c) Le bloc else est exécuté.
d) Le programme continue avec le reste du code après le bloc try.

  1. Exercice 1 : c)
  2. Exercice 2 : c)
  3. Exercice 3 : c)
  4. Exercice 4 : d)
  5. Exercice 5 : c)
  6. Exercice 6 : a)
  7. Exercice 7 : c)
  8. Exercice 8 : b)
  9. Exercice 9 : a)
  10. Exercice 10: d)

 

 
 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply