[743] in Coldmud discussion meeting

root meeting help first first in chain previous in chain previous next next in chain last in chain last

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