[743] in Coldmud discussion meeting
Re: idea for custom error handling
daemon@ATHENA.MIT.EDU (Wed May 24 17:09:56 1995
)
Date: Wed, 24 May 95 14:01:10 -0700
From: jsp@betz.biostr.washington.edu (Jeff Prothero)
To: coldstuff@MIT.EDU
Robert de Forest:
| I had this idea a while ago but I don't remember posting it.
|
| I'd like to add 'global catching' of a sort where the first action
| taken by the server when an error is thrown is to suspend the task and
| call $sys.handle_error(error, error_str, error_arg, task_id). If the
| task is resumed the expression that threw the error would instead
| return the value the task was resumed with. A new function
| 'complete_throw' (help me think of a better name) would be added to
| cause the usual action to happen.
|
| The point of all this is to allow a function to be debugged as it's
| running. .handle_error could choose to leave the task suspended and
| tell the programmer about the suspended task, etc.
I'm just finishing wrapping up implementation of the
CommonLisp condition handling system for Muq: I'm
reasonably impressed by it and think you might want
to take a look at it if you're not familiar with it.
I think you'll find that it provides the above and a
lot more, distilled from much experience with similar
debugging problems under a variety of Lisp systems
(zetalisp, maclisp, interlisp...). At the least, it
might provide a nomenclature and reference model.
http://www.cs.washington.edu/research/projects/ai/www/cltl/clm/node1.html
is one URL for CommonLisp the Language 2nd Ed: This
describes the condition system in possibly the most
gratuitously opaque bit of technical writing I've
seen in my life.
ftp://parcftp.xerox.com:/pub/cl/
contains the draft ANSI CommonLisp standard (since
adopted, if I'm not mistaken); I have a possibly
more convenient version of this posted as
http://betz.biostr.washington.edu/cl/cl.html
Cynbe