Re: Low-level vs high-level exceptions
Marc Nieper-WiÃkirchen 07 Jun 2020 15:45 UTC
Am So., 7. Juni 2020 um 15:59 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>:
>
> > It may make sense to define a class of exceptions that cannot be
> > caught by user provided handlers. This can include all exceptions a
> > Scheme system raises where the standard just says "... it is an
> > error". (*)
>
> > The advantage of (*) is also that the danger inherent in the
> > else-clause in the standard guard form would be diminished.
>
> This could also be approached from the other direction by defining a new
> `guard%` that catches absolutely everything, and implement the standard
> `guard` so that it only catches "normal" high-level exceptions. If
> necessary for conformance, the low-level exceptions can be called by
> some other name than "exception".
Guard is defined in terms of `with-exception-handler', so
`with-exception-handler' couldn't catch the "unnormal" low-level
exception either. But again, this may be a good thing. Catching
low-level exceptions with implementation-specific handlers makes much
more sense.