Daniel Weinreb <dlw@alum.mit.edu> wrote:
+---------------
| In a separate point, I do not think that an exception
| is necessarily only used for an error (a bug). To
| my mind, there are lots of appropriate places to
| use exceptions as an expected and proper part of the
| running of a program. Exceptions are how a function
| or method reports an "unusual result", such as an
| "open file" reporting "file not found". Very often
| a program knows perfectly well that a file might
| not be found and is designed to behave a certain way
| when that happens (e.g. prompt the user for a filename,
| if this is an interactive application). There's nothing
| at all wrong with coding this as an exception; in fact
| there's a lot to be said for it.
+---------------
Kent Pitman's 2001 paper makes the same point:
http://nhplace.com/kent/Papers/Condition-Handling-2001.html
Condition Handling in the Lisp Language Family
...
Condition Systems vs Error Systems
The Common Lisp community typically prefers to speak about its
condition system rather than its error system to emphasize that
there are not just fatal but also non-fatal situations in which
the capabilities provided by this system are useful.
+---------------
| One of these days I will write an essay on my view of
| exceptions and post it on my blog at dlweinreb.wordpress.com.
+---------------
Oops! Then maybe I shouldn't have mentioned Kent's paper! ;-}
-Rob
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607