At 2:33 PM -0400 10/15/02, [EMAIL PROTECTED] wrote:
>
>The constructor returns one of three values: an exception object, the
>DO_OVER constant, or the EXPRESSION constant.
>
>If an exception object is returned, that means that the interpretor should
>immediately exit the block, throwing the exception to that block's CATCH
>block, or its parent's CATCH block, and so on outward until somebody
>catches it.  You know the routine.
>
>DO_OVER means to reevaluate the expression because the reference to the
>offending variable has been set to something else.

While a nifty idea, this is not going to happen, at least not in the 
general case. Restartable exceptions are very, very difficult to do. 
(And parrot, alas, isn't going to be able to do them) You still need 
to establish an exception handler at the spot you want to restart at 
(which isn't free, alas) and you run into problems when you cross 
some internal boundaries in the interpreter.

That won't stop you from throwing a continuation when you throw your 
own exceptions, which your own exception handlers can invoke when 
they see fit, but low-level exceptions like division by zero and 
suchlike things won't be able to do that.
-- 
                                         Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                       teddy bears get drunk

Reply via email to