Reconnaître les Exceptions Courantes
Dans cette étape, nous allons explorer les exceptions courantes. Contrairement aux erreurs de syntaxe, les exceptions se produisent pendant l'exécution du programme. Le code est syntaxiquement correct, mais une erreur survient pendant son exécution.
Le fichier common_exceptions.py est prêt pour vous dans le répertoire ~/project.
Tout d'abord, provoquons une ZeroDivisionError. Ouvrez common_exceptions.py dans l'éditeur et ajoutez le code suivant :
numerator = 10
denominator = 0
result = numerator / denominator
print(result)
Enregistrez le fichier et exécutez-le depuis le terminal :
python common_exceptions.py
Le programme commence à s'exécuter mais s'arrête et affiche une ZeroDivisionError. Mathématiquement, la division par zéro est indéfinie, et Python lève cette exception pour signaler le problème.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 3, in <module>
result = numerator / denominator
ZeroDivisionError: division by zero
Ensuite, déclenchons une NameError. Cela se produit lorsque vous essayez d'utiliser une variable qui n'a pas encore été définie. Remplacez le contenu de common_exceptions.py par ce qui suit :
print(undefined_variable)
Enregistrez le fichier et exécutez-le :
python common_exceptions.py
Vous obtiendrez une NameError car l'interpréteur ne sait pas à quoi se réfère undefined_variable.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 1, in <module>
print(undefined_variable)
NameError: name 'undefined_variable' is not defined
Voyons maintenant une TypeError. Cela se produit lorsque vous essayez d'effectuer une opération sur un objet d'un type inapproprié. Remplacez le contenu de common_exceptions.py par ce code :
print("Hello" + 5)
Enregistrez et exécutez le script :
python common_exceptions.py
Vous verrez une TypeError. Python ne vous permet pas d'additionner (+) directement une chaîne de caractères (string) et un entier (integer).
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 1, in <module>
print("Hello" + 5)
TypeError: can only concatenate str (not "int") to str
Enfin, démontrons une IndexError. Cela se produit lorsque vous essayez d'accéder à un élément d'une séquence (comme une liste) en utilisant un index qui est hors limites. Remplacez le contenu de common_exceptions.py par ce qui suit :
my_list = [1, 2, 3]
print(my_list[5])
Enregistrez et exécutez le script :
python common_exceptions.py
Vous obtiendrez une IndexError. La liste my_list contient trois éléments, ses indices valides sont donc 0, 1 et 2. Accéder à l'index 5 n'est pas possible.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 2, in <module>
print(my_list[5])
IndexError: list index out of range
Comprendre ces exceptions courantes est une partie essentielle de l'apprentissage du débogage de code Python.