[Python-Dev] PEP 352 Transition Plan
Nick Coghlan
ncoghlan at gmail.com
Sat Oct 29 04:23:17 CEST 2005
Brett Cannon wrote:
> Interesting point, but I think that chaining should have more concrete
> support ala PEP 344 or some other mechanism. I think most people
> agree that exception chaining is important enough to have better
> support than some implied way of a causing exception to be passed
> along. Perhaps something more along the lines of:
>
> try:
> raise TypeError("inner detail")
> except TypeError, e:
> raise TypeError("outer detail", cause=e)
>
> where BaseException then has a 'cause' attribute that is set to None
> by default or some specific object that is passed in as the second
> argument to the constructor.
Another point in PEP 352's favour, is that it makes it far more feasible to
implement something like PEP 344 by providing "__traceback__" and
"__prev_exc__" attributes on BaseException.
The 'raise' statement could then take care of setting them appropriately if it
was given an instance of BaseException to raise.
Actually, that brings up another question - PEP 352 says it will require
objects that "inherit from BaseException". Does that mean that either subtypes
or instances of BaseException will be acceptable? Or does it just mean
instances? If the latter, how will that affect the multi-argument forms of
'raise'?
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
http://boredomandlaziness.blogspot.com
More information about the Python-Dev
mailing list