Bonjour,
j'aimerais récupéré le numéro de ligne d'une exception Python interceptée par
Comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part except Exception, e :
Merci
Bonjour,
j'aimerais récupéré le numéro de ligne d'une exception Python interceptée par
Comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part except Exception, e :
Merci
N'est-ce pas possible ??
C'est possible avec le module traceback
Ce n'est probablement pas la meilleure façon de faire, mais regarde dans l'aide du module traceback, tu trouveras mieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 import traceback try: a = [] a[0] = 'boom' except IndexError, ex: print 'Line:', traceback.extract_stack()[-1][1]
merci,
je vais essayer ...
en fait
me retourne la ligne ou cette instruction est écrite, pas là où l'erreur à eu lieu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part traceback.extract_stack()[-1][1]
Mais l'idée m'a bien orienté (merci), le module traceback est la solution :
retourne une liste des informations sur l'emplacement exact de l'erreur (fichiers, fonctions, lignes de codes, numéro de ligne).
Code : Sélectionner tout - Visualiser dans une fenêtre à part traceback.extract_tb(sys.exc_traceback)
Pour le type et le message d'erreur, il y aet
Code : Sélectionner tout - Visualiser dans une fenêtre à part sys.exc_info()[0]Sinon, façon chaine de caracteres :
Code : Sélectionner tout - Visualiser dans une fenêtre à part sys.exc_info()[1]
qui affiche la mm chose sous forme de string avec ttes les infos citées ci-dessus (ne retourne rien !)
Code : Sélectionner tout - Visualiser dans une fenêtre à part traceback.print_exc()
Partager