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 this catches the signal.

View in manual

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 this catches the signal."
  (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)))