[R6RS] Semantics of `raise'

William D Clinger will at ccs.neu.edu
Mon Mar 6 15:40:46 EST 2006


> There's a mismatch here, or I'm not understanding.  Do you mean that
> the `raise-continuable' procedure is dangerous in the sense that it
> can be used to write an infinite loop that repeatedly raises an
> exception from the exception handler?

Yes. 

> If so, what's the rationale for
> having `raise-continuable' depart from the behavior of `raise' with
> respect to the dynamic environment?

The SRFI 34 semantics for raise changes the current exception
handler.  To repair the cause of the exception, and to continue
from it, there would have to be some way to reinstall the
exception handler that was removed by raise.  SRFI 34 provides
no way to do that, and it's hard to imagine a mechanism for
reinstalling the previous exception handler that would be both
reliable and fast.  For continuable exceptions, the right thing
to do is not to remove the current exception handler; then you
don't have to reinstall it.

Will



More information about the R6RS mailing list