[Python-3000] Exceptions internals and removing sys.exc_*

Thomas Wouters thomas at python.org
Tue Jan 23 16:07:55 CET 2007


On 1/22/07, Mark Hammond <mhammond at skippinet.com.au> wrote:
>
> > Guido has mentioned [1] that since exceptions will be growing a
> > __traceback__ attribute in Python 3, it should be possible to remove
> > sys.exc_info().
>
> sys.exc_info() is also useful for returning the exception itself, not only
> the traceback.  The traceback and logger modules both take advantage of it
> to avoid the pain of passing exception objects around.  eg:
>
>   try:
>    ...
>   except Foo:
>     logger.exception("something bad happened")
>
> is better than what may otherwise be necessary:
>
>   except Foo, f:
>     logger.exception("something bad happened", exc_info=f)
>
> It seems a reasonable use case to have code that knows it is dealing with
> exceptions, but not always be directly in the exception handler.


I agree, and believe sys.exc_info() should just stay. There's also the case
of try/finally and fetching any raised exception there. (In fact, doesn't
the 'with' statement do something similar?)

-- 
Thomas Wouters <thomas at python.org>

Hi! I'm a .signature virus! copy me into your .signature file to help me
spread!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-3000/attachments/20070123/4381aa1f/attachment.html 


More information about the Python-3000 mailing list