Newsgroups: comp.lang.scheme
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!think.com!snorkelwacker.mit.edu!bloom-beacon!dont-send-mail-to-path-lines
From: mkatz@garlic.stanford.EDU (Morris Katz)
Subject: open-input-file [topics from hell, part 2]
Message-ID: <9104291603.AA12211@garlic.Stanford.EDU>
Sender: daemon@athena.mit.edu (Mr Background)
Organization: The Internet
References: <9104270655.aa29839@mc.lcs.mit.edu>
Date: 29 Apr 91 16:03:42 GMT
Lines: 23

If we ever get serious about adding a condition(error) system to scheme, I
would suggest that we go back and take another look at the one in CLU.  (I
believe that this system shares a lot of commonality with CL, but I am not a CL
hacker and so have relatively little knowledge of the CL condition system.)  I
can honestly say that the CLU condition system is the only one with which I
have a fair degree of familiarity that is not IMHO completely broken.  Some of
the features it includes which I consider important are
1)  Dynamically scoped error handlers
2)  The ability to specify handlers for any set of errors and allow others to
    propogate out to dynamically enclosing scopes.
3)  A choice of how to resume computation following the handling of an error.
4)  The ability to define new error types.

The one feature which it lacks and I would like to see is a concept os a
hierarchy of errors.  By this I mean that several errors should all be
definable as a subtype of another error.  A handler for the supertype could
then handle errors for all the subtypes.  The default handler which most
systems currently support that just prints an error message on the screen would
be the handler for the error type of which all other error types are a subtype.
--------------------
Morry Katz
katz@cs.stanford.edu
--------------------
