[pypy-dev] Throwing arbitrary objects as exceptions (was Re: DLS paper on RPython)
Niko Matsakis
niko at alum.mit.edu
Fri May 18 11:14:22 CEST 2007
>>
> the idea is that only subclasses of Exception/BaseException can be
> thrown in RPython, we have no code
> to enforce that right now OTOH if you find places in our RPython
> code that don't do that those
> are bugs to fix.
Okay, I guess the right thing to do then is to insert a CHECKCAST
when the static type of a thrown exception is not a sub-type of
Exception. "Correct" RPython should work, and the rest will throw a
ClassCastException.
If the annotator/rtyper were later changed to provide a static type
better than Object, then the casts won't be generated.
That's what I've done for now. It fixes the broken test, at least. :)
Niko
More information about the Pypy-dev
mailing list