A veces, mientras estoy depurando, se genera una excepción.¿Cómo puedo ver los detalles de una excepción en el depurador de Python?
Por ejemplo, considere este código:
def some_function(): # Pretend this function is in a library...
# ...and deep within the library is an exception:
raise Exception('An exception message with valuable information.')
import pdb; pdb.set_trace()
try:
some_function() # Pretend I am debugging from this point using pdb.
except:
pass
Mientras que la depuración de la llamada some_function()
, si emite un comando next
voy a ver los siguientes detalles acerca de la excepción que se planteó [y atrapó]:
Exception: Exceptio...ation.',)
Aquí es una copia recta/pegar desde el terminal estaba trabajando en:
> /tmp/test.py(7)<module>()
-> some_function() # Pretend I am debugging from this point using pdb.
(Pdb) next
Exception: Exceptio...ation.',)
> /tmp/test.py(7)<module>()
-> some_function() # Pretend I am debugging from this point using pdb.
(Pdb)
Sería útil ver el mensaje de excepción completo. ¿Cómo puedo hacer esto en pdb?
¿Qué versión de Python estás usando? El mío no se trunca así. – Keith
Versión 2.7.1. Tenga en cuenta que la declaración de aumento está impresa en su totalidad, por lo que a primera vista puede pensar que toda la excepción está impresa, pero cuando la Excepción real es "interceptada" (no conozco el término) por pdb, se trunca. – Buttons840
Bueno, en realidad escribí mi propia variación de un depurador de Python que no hace eso, y también significa ingresar el depurador automáticamente (usa sys.excepthook). Si lo desea, puede intentarlo en su lugar. Es el subpaquete [depurador] (http://code.google.com/p/pycopia/source/browse/#svn%2Ftrunk%2Fdebugger). – Keith