Retrieving a stacktrace from an exception object / forwarding an exception

alg agillesp at gmail.com
Fri Jun 22 06:08:45 EDT 2007


Use the traceback module:

def log_exception():
    """This function will log the current exception's traceback
       to logfile
    """
    import traceback
    f = open("logfile", 'a')
    traceback.print_exc(32, f)
    f.close()

def my_func():
    raise Exception

def wrapper():
    try:
        my_func()
    except Exception, e:
        log_exception()
        raise e


On Jun 21, 11:54 pm, Samuel <knipk... at gmail.com> wrote:
> Hi,
>
> I am trying to wrap a function that throws an exeption in such a way
> that the stacktrace is logged into a file and the exception is
> forwarded after that. For example:
>
> -------------------
> def my_func():
>     raise Exception("hello")
>
> def wrapper():
>     try:
>         my_func()
>     except Exception, e:
>         f = open("logfile", 'a')
>         f.write(e.stacktrace())
>         raise e
>
> wrapper() # should throw the exception with a stacktrace showing
> my_func()
> -------------------
>
> Any idea if and how this can be done?
>
> -Samuel





More information about the Python-list mailing list