Desidero salvare il nome dell'errore e i dettagli di traceback in una variabile. Ecco il mio tentativo.Come salvare i valori di traceback/sys.exc_info() in una variabile?
import sys
try:
try:
print x
except Exception, ex:
raise NameError
except Exception, er:
print "0", sys.exc_info()[0]
print "1", sys.exc_info()[1]
print "2", sys.exc_info()[2]
uscita:
0 <type 'exceptions.NameError'>
1
2 <traceback object at 0xbd5fc8>
output desiderato:
0 NameError
1
2 Traceback (most recent call last):
File "exception.py", line 6, in <module>
raise NameError
P.S. So che questo può essere fatto facilmente usando il modulo di traceback, ma voglio sapere l'uso dell'oggetto sys.exc_info() [2] qui.
Potreste aver capito male quello che sta succedendo nel vostro programma: ciò che si fa riferimento a come "sys.exc_info() [2] oggetto" è un'istanza dell'oggetto traceback (= si utilizza già il modulo traceback). Ora, puoi manipolare quell'oggetto senza usare le funzioni di aiuto nel modulo traceback, ma questo non cambia il fatto che lo stai ancora usando. :) – mac
Hai provato a stampare sys.exc_info() [x] .__ str __()? – zmbq
Quindi @mac, per favore aiutatemi ad accedere al valore da questo oggetto con o senza l'uso della funzione helper. – codersofthedark