2009-10-21 21 views
15

Para una excepción no detectada, Python imprime de manera predeterminada un seguimiento de pila, la excepción en sí misma, y ​​finaliza. ¿Alguien sabe de una manera de adaptar este comportamiento en el nivel del programa (que no sea el establecimiento de mi propio controlador global de excepción catch-all), de modo que se omita el seguimiento de la pila? Me gustaría alternar en mi aplicación si el trazado de la pila está impreso o no.Configuración del manejo de excepción predeterminado de Python

+2

¿Qué pasa con un manejador global catch-all? –

+0

@ S.Lott Nada malo, solo quería saber. – ThomasH

Respuesta

22

Usted está buscando sys.excepthook:

sys.excepthook (tipo, valor, rastreo)

Esta función imprime un rastreo dado y excepción a sys.stderr.

Cuando una excepción se produce y no se detecta, el intérprete llama a sys.excepthook con tres argumentos, la clase de excepción, la instancia de excepción y un objeto de rastreo. En una sesión interactiva, esto sucede justo antes de que se devuelva el control al aviso; en un programa de Python esto sucede justo antes de que el programa salga. El manejo de tales excepciones de nivel superior se puede personalizar asignando otra función de tres argumentos a sys.excepthook.

+0

Sí, eso es todo, gracias. – ThomasH

+0

Merci, j'ai trouvé là ce qu'il me fallait! – eyquem

Cuestiones relacionadas