From: Peter Seibel
Subject: Top-level handler or *DEBUGGER-HOOK* to ensure we don't end up in debugger?
Date: 
Message-ID: <m34qyu9r02.fsf@javamonkey.com>
Suppose one was delivering an application and wanted to be sure that
the user (who doesn't know from Lisp) is never dropped into the raw
Lisp debugger. So you write some function that handles any condition
in as graceful and user-friendly a way as possible.

Now, I can think of two ways to install such a function--one is to
wrap my top-level entry point in a HANDLER-BIND for CONDITION that
binds this function. The other is to bind *DEBUGGER-HOOK* to this
function (adapted as necessary to take two arguments instead of one).
The only difference I can think of, is if any handler functions
downstream are using the "I'm-just-a-default-handler" idiom of
resignalling the condition and then handling it if it isn't handled by
a handler higher up the stack, then binding my user-protection
function with HANDLER-BIND will probably screw them up.

Are there any other differences that I'm not thinking of? Which would
you do?

-Peter

-- 
Peter Seibel                                      ·····@javamonkey.com

         Lisp is the red pill. -- John Fraser, comp.lang.lisp