How can I print a traceback without raising an exception?

Chris Rebert clp2 at rebertia.com
Sun Feb 13 13:43:59 EST 2011


On Sun, Feb 13, 2011 at 10:05 AM, Gerald Britton
<gerald.britton at gmail.com> wrote:
> 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
>>>>

traceback.print_stack():
http://docs.python.org/library/traceback.html#traceback.print_stack

Cheers,
Chris



More information about the Python-list mailing list