On Sat, Aug 14, 2004 at 12:26:23AM -0400, Michael Stone wrote: : Finally, (and I'm just thinking about charset stuff here), exceptions : frequently involve a bit of string processing. So if the : charset/encoding code starts throwing exceptions, how do we write the : string processing that those exceptions do so that further exceptions : aren't thrown? Is Parrot like C++ where if an exception handler : generates a second exception, the runtime immediately calls abort()? If : not, how do we handle this situation, or another one like it?
I hope that Parrot will take an approach like Perl 5 and just add more information to the current exception (assuming it's not in an infinite regress of some sort (which can presumably be guarded against)). Or equivalently, generate a new exception containing the old exception. It's not really nice to throw away information, and it's not really nice to abort when you could still recover, albeit in a cruder fashion than perhaps you first hoped. The whole point of having dynamically nested exception handlers is to allow dynamically nested exception handling. Duh... :-) Larry