de Cette question , je fais maintenant une erreur de manipulation d'un niveau. C'est-à-dire que j'appelle une fonction qui appelle une autre fonction plus grande, et je veux où elle a échoué dans cette fonction plus grande, pas dans la fonction la plus petite. Exemple spécifique. Le code est le suivant: sortie est: p> mais la ligne 8 est "PRINT WEURCHFOVE ()" - Je sais que cette ligne a échoué, mais Je veux la ligne avant: p>
3 Réponses :
Ajouter une ligne: juste après votre appel à Voir les docs ici sous" Objets de trace ". P> P> sys.exc_info code>. p>
Vous devez trouver le bas de la trace, vous devez donc vous boucher jusqu'à ce qu'il n'y ait plus de cadres. Faites cela pour trouver le cadre que vous souhaitez:
while tb.tb_next: tb = tb.tb_next
mais le module de traceback fait cela et bien plus encore: p> tb.tb_next code> est votre ami: