Function: condition-case-unless-debug
condition-case-unless-debug is a macro defined in subr.el.gz.
Signature
(condition-case-unless-debug VAR BODYFORM &rest HANDLERS)
Documentation
Like condition-case, except that it does not prevent debugging.
More specifically, if debug-on-error is set, then the debugger will
be invoked even if some handler catches the signal.
Note that this doesn't prevent the handler from executing, it just
causes the debugger to be called before running the handler.
Probably introduced at or before Emacs version 24.1.
Source Code
;; Defined in /usr/src/emacs/lisp/subr.el.gz
(defmacro condition-case-unless-debug (var bodyform &rest handlers)
"Like `condition-case', except that it does not prevent debugging.
More specifically, if `debug-on-error' is set, then the debugger will
be invoked even if some handler catches the signal.
Note that this doesn't prevent the handler from executing, it just
causes the debugger to be called before running the handler."
(declare (debug condition-case) (indent 2))
`(condition-case ,var
,bodyform
,@(mapcar (lambda (handler)
(let ((condition (car handler)))
(if (eq condition :success)
handler
`((debug ,@(if (listp condition) condition
(list condition)))
,@(cdr handler)))))
handlers)))