Function: ignore-error

ignore-error is a macro defined in subr.el.gz.

Signature

(ignore-error CONDITION &rest BODY)

Documentation

Execute BODY; if the error CONDITION occurs, return nil.

Otherwise, return result of last form in BODY.

CONDITION can also be a list of error conditions. The CONDITION argument is not evaluated. Do not quote it.

View in manual

Probably introduced at or before Emacs version 27.1.

Source Code

;; Defined in /usr/src/emacs/lisp/subr.el.gz
(defmacro ignore-error (condition &rest body)
  "Execute BODY; if the error CONDITION occurs, return nil.
Otherwise, return result of last form in BODY.

CONDITION can also be a list of error conditions.
The CONDITION argument is not evaluated.  Do not quote it."
  (declare (debug t) (indent 1))
  (cond
   ((and (eq (car-safe condition) 'quote)
         (cdr condition) (null (cddr condition)))
    (macroexp-warn-and-return
     (format-message
      "`ignore-error' condition argument should not be quoted: %S"
      condition)
     `(condition-case nil (progn ,@body) (,(cadr condition) nil))
     nil t condition))
   (body
    `(condition-case nil (progn ,@body) (,condition nil)))
   (t
    (macroexp-warn-and-return (format-message "`ignore-error' with empty body")
                              nil '(empty-body ignore-error) t condition))))