Quiero guardar el nombre del error y los detalles de seguimiento en una variable. Aquí está mi intento.¿Cómo guardar los valores de traceback/sys.exc_info() en una variable?
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]
Salida:
0 <type 'exceptions.NameError'>
1
2 <traceback object at 0xbd5fc8>
salida deseada:
0 NameError
1
2 Traceback (most recent call last):
File "exception.py", line 6, in <module>
raise NameError
P. S. Sé que esto se puede hacer fácilmente usando el módulo de rastreo, pero quiero saber aquí el uso del objeto sys.exc_info() [2].
Es posible que haya entendido mal lo que está pasando en su programa: lo que se refieren como "sys.exc_info() [2] objeto" es una instancia del objeto de rastreo (= que está utilizando el módulo de rastreo ya) Ahora puede manipular ese objeto sin utilizar las funciones auxiliares en el módulo de rastreo, pero eso no cambia el hecho de que todavía lo está utilizando. :) – mac
¿Ha intentado imprimir sys.exc_info() [x] .__ str __()? – zmbq
Así que @mac por favor ayúdame a usar el acceso al valor de este objeto con o sin usar la función auxiliar. – codersofthedark