Apprendre le flux de gestion des exceptions
Dans cette étape, vous allez apprendre à gérer les exceptions en Python. La gestion des exceptions est une partie cruciale de l'écriture de code robuste et fiable. Elle vous permet de gérer gracieusement les erreurs qui pourraient survenir lors de l'exécution de votre programme, évitant ainsi son plantage et offrant une expérience plus conviviale pour l'utilisateur.
Commençons par un exemple simple. Imaginez que vous souhaitiez diviser deux nombres, mais que le deuxième nombre pourrait être zéro. La division par zéro est une opération indéfinie et lèvera une ZeroDivisionError
en Python.
-
Ouvrez l'éditeur VS Code dans l'environnement LabEx.
-
Créez un nouveau fichier nommé division.py
dans le répertoire ~/project
.
touch ~/project/division.py
-
Modifiez le fichier division.py
et ajoutez le code suivant :
## division.py
numerator = 10
denominator = 0
result = numerator / denominator
print(result)
-
Exécutez le script en utilisant la commande python
:
python ~/project/division.py
Vous verrez un message d'erreur similaire à celui-ci :
Traceback (most recent call last):
File "/home/labex/project/division.py", line 4, in <module>
result = numerator / denominator
ZeroDivisionError: division by zero
Ce message d'erreur indique qu'une ZeroDivisionError
s'est produite car nous avons essayé de diviser par zéro. Sans gestion des exceptions, le programme se termine brusquement.
Maintenant, utilisons la gestion des exceptions pour gérer cette erreur de manière gracieuse.
-
Modifiez le fichier division.py
pour inclure un bloc try...except
:
## division.py
numerator = 10
denominator = 0
try:
result = numerator / denominator
print(result)
except ZeroDivisionError:
print("Error: Cannot divide by zero.")
Dans ce code, le bloc try
contient le code qui peut lever une exception. Si une ZeroDivisionError
se produit dans le bloc try
, le code dans le bloc except
sera exécuté.
-
Exécutez le script à nouveau :
python ~/project/division.py
Maintenant, au lieu de planter, le programme affichera :
Error: Cannot divide by zero.
Cela démontre la structure de base de la gestion des exceptions :
- Le bloc
try
englobe le code qui peut lever une exception.
- Le bloc
except
spécifie le type d'exception à capturer et le code à exécuter si cette exception se produit.
Vous pouvez également capturer plusieurs types d'exceptions en utilisant plusieurs blocs except
:
## division.py
numerator = 10
denominator = "abc"
try:
result = numerator / int(denominator)
print(result)
except ZeroDivisionError:
print("Error: Cannot divide by zero.")
except ValueError:
print("Error: Invalid input. Please enter a number.")
Dans cet exemple, nous avons ajouté un gestionnaire d'exception ValueError
. Si le denominator
ne peut pas être converti en entier (par exemple, s'il s'agit d'une chaîne de caractères comme "abc"), une ValueError
sera levée et le bloc except
correspondant sera exécuté.
Exécutez le script :
python ~/project/division.py
Sortie :
Error: Invalid input. Please enter a number.
La gestion des exceptions vous permet d'écrire des programmes plus robustes et conviviaux en anticipant et en gérant les erreurs potentielles.