[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.


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.


contains the draft ANSI CommonLisp standard (since
adopted, if I'm not mistaken);  I have a possibly
more convenient version of this posted as