How can I print a traceback without raising an exception?

Gerald Britton gerald.britton at gmail.com
Sun Feb 13 19:05:04 CET 2011


In the following example, I raise an exception in function h() which
prints a traceback.  I would like to know how I can get a similar
display on my terminal without raising an exception.  That is, can I
replace "raise Exception" in function h() with some sequence of
instructions (possibly using the inspect module) that will generate a
similar call trace  of how I got to that point?

Example:

>>> def f():
...  g()
...
>>> def g():
...  h()
...
>>> def h():
...  raise Exception  # Replace with something to generate a call trace
...
>>> f()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in f
  File "<stdin>", line 2, in g
  File "<stdin>", line 2, in h
Exception
>>>


-- 
Gerald Britton



More information about the Python-list mailing list