Quand un programme s'arrête sur une erreur, il affiche la suite des appels qui y ont mené. C'est déjà la moitié du travail, à condition de la lire dans le bon sens : du bas vers le haut.
La trace
Traceback (most recent call last):
File "facture.py", line 58, in <module>
total = additionner(lignes)
File "facture.py", line 40, in additionner
return sum(convertir(l) for l in lignes)
File "facture.py", line 27, in convertir
return float(ligne["montant"])
KeyError: 'montant'
Objectif
Situer l'endroit où l'erreur éclate, compter les appels empilés, et repérer d'où part le premier appel.
Pièges
La première ligne de la trace attire l'œil, et c'est la moins utile : elle indique par où le programme a commencé, pas où il a échoué.