[Python-Dev] Chained Exceptions
Phillip J. Eby
pje at telecommunity.com
Fri May 13 03:14:41 CEST 2005
At 07:36 PM 5/12/2005 -0500, Ka-Ping Yee wrote:
>On Thu, 12 May 2005, Brett C. wrote:
> > Guido van Rossum wrote:
> > > Try to come up with a precise specification and we'll talk.
> >
> > If a new exception is raised (e.g., not a bare 'raise') while a current
> > exception is active (e.g., sys.exc_info() would return something other
> > than a tuple of None), then the new exception is made the active exception
> > and the now old exception is assigned to the new exception's context
> > attribute to be the old exception.
>
>Yeah, i think that's basically all there is to it. I'll go have a peek
>at the interpreter to see if i'm forgetting something.
I think the main problem is going to be that (IIUC), Python doesn't "know"
when you've exited an 'except:' clause and are therefore no longer
handling the exception. sys.exc_info() still gives you the exception you
just caught. I think that a lot of the questions Guido brought up are
directly related to this.
Also, what about code like this:
try:
doSomething()
except SomeError:
pass
doSomethingElse()
Should exceptions raised by doSomethingElse()' be treated as having the
SomeError as their context, if it was raised?
If I understand correctly, the interpreter cannot currently distinguish
between this, and the case where an error is raised inside the 'except' clause.
More information about the Python-Dev
mailing list