1.6 Messages d'erreur
Objectifs d'apprentissage
À la fin de cette section, vous devriez être capable de :
- Identifier le type d'erreur et le numéro de ligne dans les messages d'erreur.
- Corriger les erreurs de syntaxe, les erreurs de nom et les erreurs d'indentation.
Comment lire les erreurs
Faire des erreurs fait naturellement partie de la programmation. Même les programmeurs expérimentés font des erreurs en écrivant du code. Des erreurs peuvent survenir lorsque des fautes sont commises lors de l'écriture du code. L'ordinateur a besoin d'instructions très précises lui indiquant ce qu'il doit faire. Si les instructions ne sont pas claires, l'ordinateur ne sait pas quoi faire et renvoie une erreur.
Lorsqu'une erreur survient, Python affiche un message contenant les informations suivantes :
- Le numéro de ligne de l'erreur.
- Le type d'erreur (ex. :
SyntaxError). - Des détails supplémentaires sur l'erreur.
Ex. : Saisir print "Hello!" sans parenthèses est une erreur de syntaxe. En Python, les parenthèses sont obligatoires pour utiliser print. Lors d'une tentative d'exécution de print "Hello!", Python affiche l'erreur suivante :
Traceback (most recent call last):
File "/home/student/Desktop/example.py", line 1
print "Hello"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello")?
Le caractère accent circonflexe (^) indique l'endroit où Python a détecté l'erreur. Parfois, l'erreur peut se situer une ou deux lignes avant l'endroit indiqué par le symbole circonflexe, car Python n'a pu découvrir l'erreur qu'à ce stade. Le Traceback est un rapport de Python indiquant l'emplacement et le type de l'erreur. Le mot traceback suggère au programmeur de remonter dans le code pour trouver l'erreur si celle-ci n'est pas immédiatement visible.
Apprendre à lire attentivement les messages d'erreur est une compétence essentielle. La quantité de jargon technique peut sembler déroutante au début, mais ces informations s'avèrent très utiles.
Concepts en pratique
Composantes d'une erreur
Soit le message d'erreur suivant :
Traceback (most recent call last):
File "/home/student/Desktop/example.py", line 2
print "test"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("test")?
Types d'erreurs courants
Différents types d'erreurs peuvent se produire lors de l'exécution de programmes Python. Lorsqu'une erreur survient, connaître le type d'erreur donne des indications sur la manière de la corriger. Le tableau suivant présente des exemples d'erreurs que n'importe qui pourrait commettre en programmant.
| Erreur | Message d'erreur | Explication |
|---|---|---|
|
SyntaxError: unexpected EOF while parsing |
La parenthèse fermante est manquante. Python est surpris d'atteindre la fin du fichier (EOF) avant que cette ligne ne soit terminée. |
|
SyntaxError: EOL while scanning string literal |
Les guillemets fermants sont manquants. Par conséquent, la chaîne de caractères ne se termine pas avant la fin de la ligne (EOL). |
|
NameError: name 'wird' is not defined |
L'orthographe de |
|
NameError: name 'prints' is not defined |
L'orthographe de |
print("Hello")
|
IndentationError: unexpected indent |
Le programmeur a accidentellement tapé une espace au début de la ligne. |
print("Goodbye")
|
IndentationError: unexpected indent |
Le programmeur a accidentellement appuyé sur la touche Tab au début de la ligne. |
Concepts en pratique
Types d'erreurs
Pour chacun des programmes ci-dessous, quel type d'erreur va se produire ?
À vous d'essayer
Trois erreurs
Le programme suivant contient trois erreurs.
- Exécutez le programme pour trouver la première erreur, puis corrigez la ligne de code correspondante.
- Exécutez ensuite le programme à nouveau pour trouver et corriger la deuxième erreur.
- Continuez à exécuter et à corriger le programme jusqu'à ce qu'aucune erreur ne soit trouvée.
À vous d'essayer
Symboles incorrects
Ce code est basé sur un exemple précédent, mais il contient plusieurs erreurs.
- Il manque à une ligne une ponctuation obligatoire, et une autre ligne utilise des symboles incorrects.
- Exécutez le programme pour trouver la première erreur, puis corrigez la ligne de code correspondante.
- Continuez à exécuter et à corriger le programme jusqu'à ce qu'aucune erreur ne soit trouvée.