Estoy tratando de capturar una excepción en un hilo y volver a subir en el hilo principal:volver a subir a excepción de Python y preservar seguimiento de la pila
import threading
import sys
class FailingThread(threading.Thread):
def run(self):
try:
raise ValueError('x')
except ValueError:
self.exc_info = sys.exc_info()
failingThread = FailingThread()
failingThread.start()
failingThread.join()
print failingThread.exc_info
raise failingThread.exc_info[1]
Esto básicamente funciona y da el siguiente resultado:
(<type 'exceptions.ValueError'>, ValueError('x',), <traceback object at 0x1004cc320>)
Traceback (most recent call last):
File "test.py", line 16, in <module>
raise failingThread.exc_info[1]
Sin embargo, la fuente de la excepción apunta a la línea 16, donde ocurrió la reposición. La excepción original proviene de la línea 7. ¿Cómo hacer que tengo que modificar el principal hilo para que la salida se lee:
Traceback (most recent call last):
File "test.py", line 7, in <module>
increíble, he estado re-criando excepciones de otros temas también, pero nunca fue tan lejos quieres :) –
posible duplicado de ["Excepción interna" (con traceback) en Python?] (Http://stackoverflow.com/questions/1350671/inner-exception-with-traceback-in-python) –