Bonjour,
j'aimerais récupéré le numéro de ligne d'une exception Python interceptée par
Comment faire ?Code:except Exception, e :
Merci
Version imprimable
Bonjour,
j'aimerais récupéré le numéro de ligne d'une exception Python interceptée par
Comment faire ?Code: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:
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: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:traceback.extract_tb(sys.exc_traceback)
Pour le type et le message d'erreur, il y aetCode:sys.exc_info()[0]
Sinon, façon chaine de caracteres :Code: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:traceback.print_exc()