guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Line/column numbers in user supplied exception handlers


From: Marius Vollmer
Subject: Re: Line/column numbers in user supplied exception handlers
Date: 13 Jul 2001 01:30:09 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.0.102

Neil Jerram <address@hidden> writes:

>     Marius> I would deprecate catch/throw.
> 
> OK, now you've outflanked me!  Could you explain the big picture?

Uh, oh, I'd rather not since I don't have a very clear big picture
myself.  I like the Common Lisp condition system quite a bit, better
than the withdrawn error handling SRFI, which in turn I like better
than the existing Guile system.

The thing about catch/throw in particular is that I think it is abused
for error handling.  It conflates two concepts that should be kept
separate: non-local transfers of control, and registering for handling
certain exceptional situations.

For the `non-local transfer of control part', we should use call/cc or
a more efficient variant like `call/ec' (with or without
`escape-protect').

For the `registering for handling exceptions', we should use a new
mechanism like `call-with-exception-handler' that runs the handlers in
the dynamic context of the exception.

There are quite some details, like whether we should have only a
single current exception handler, or a list of them, that I'm not sure
about yet.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]