Instance Exception Oddity: Implicit and Explicit not the same?
__peter__ at web.de
Tue Dec 9 12:46:52 CET 2003
RT Lange wrote:
> but if o is an instance of an E subclass (hence isinstance(o, E) is still
> shouldn't the first form raise an exception with type E (not E's subclass)
> and value o?
"If it is an instance of the class, the *instance* *becomes* the *exception*
Or, directly from the source:
/* if the value was not an instance, or is not an instance
whose class is (or is derived from) type, then use the
value as an argument to instantiation of the type
(comment in function PyErr_NormalizeException() in error.c)
As clear as you can get. I cannot comment on the rationale of that design
decision, though. I would replace the
raise E, args # disallow in 3.0?
form completely with
which would avoid the ambiguity altogether.
PS: I think you owe me an answer to Aahz' pending question now :-)
More information about the Python-list