[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