When an exception occurs in Python, can you inspect the stack? Can you determine its depth? I\'ve looked at the traceback module, but I can\'t figure out how to use it.
<
I like the traceback module.
You can get a traceback object using sys.exc_info()
. Then you can use that object to get a list preprocessed list of traceback entries using traceback.extract_tb()
. Then you can get a readable list using traceback.format_list()
as follows:
import sys
import traceback, inspect
try:
f = open("nonExistant file",'r')
except:
(exc_type, exc_value, exc_traceback) = sys.exc_info()
#print exception type
print exc_type
tb_list = traceback.extract_tb(sys.exc_info()[2])
tb_list = traceback.format_list(tb_list)
for elt in tb_list:
print elt
#Do any processing you need here.
See the sys Module: http://docs.python.org/library/sys.html
and the traceback Module: http://docs.python.org/library/traceback.html