[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] 6.11 Exceptions

On Wed, 2013-01-09 at 11:58 -0800, Per Bothner wrote:
> On 01/08/2013 06:07 PM, Alex Shinn wrote:
> > Continuable and restartable exceptions have a long history in both
> > Scheme and Common-Lisp, and if nothing else are essential to
> > featureful debuggers.
> In that case they're not essential in the *language*. I find singularly
> unpersuasive arguments that we need something in the language because
> it is useful to a debugger.  A useful debugger has to go beyond the
> language.  For example a debugger should be able to inspect function-local
> and non-exported module variables.

I feel compelled to make a general comment about raise-continuable and
raise in the context of errors and the like. RAISE-CONTINUABLE performs
a non-local exit that is handled by an exception handler and allows for
a return to the calling continuation. That's it. It says nothing, and is
not meant to say anything about what it raises. It is not meant
exclusively as a means of raising errors. If you want to raise errors,
you can, and those errors may even be such that they can be continued
from, but this is different and orthogonal to the question of
raise-continuable. RAISE and RAISE-CONTINUABLE are two complementary
primitives for performing non-local exits that "jump" to a specific
handler context. 

If you want to talk about errors, then we should really talk about error
taxonomies. In there, even despite having a RAISE-CONTINUABLE primitive,
it may make sense to have a sort of error that explicitly marks itself
as "continuable." This does not mean that RAISE-CONTINUABLE should not
exist. Errors and exceptions and the raising of objects to be handled by
exception handlers are different things, and we should avoid conflating
a common use case of exception systems with the general utility of them.

Aaron W. Hsu | arcfide@x | http://www.sacrideo.us
לֵ֤ב חֲכָמִים֙ בְּבֵ֣ית אֵ֔בֶל וְלֵ֥ב כְּסִילִ֖ים בְּבֵ֥ית שִׂמְחָֽה׃

Scheme-reports mailing list