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

Reply via email to