Guido van Rossum wrote:

> The internal mechanism for bubbling an exception up the stack until an
> except clause catches it could continue to use the (class, instance,
> traceback) triple,

Hmmm, so most of that complexity will still be there at
the C level. I was hoping there might be some simplification
there as well. However...

> and if raise is passed a class instead of an
> instance, the instance would be NULL; when forced to instantiate the
> exception, the traceback collected up to that point is attached to it.

Would this apply to Python code as well? I.e. if you use
a raise statement with a class, it doesn't get instantiated
immediately? And if you catch it with an except clause which
doesn't capture the exception, it's never instantiated?
That would be a bonus.

> If an instance was passed to raise, the __traceback__ pointer in the
> instance is updated each time we leave a stack frame.

So it seems we're back to declaring pre-instantiated
exceptions to be bad style, which you said you didn't
like earlier -- have you changed your mind?

What about thread safety? Do we just document that using
pre-instantiated exceptions is not thread-safe?

--
Greg
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to