Emacs provides a built-in feature called debug-on-error
, which can be activated with (setq debug-on-error t)
. The feature determines whether Emacs should enter the debugger when an error occurs. By default, Emacs enters the debugger for all errors, which can be helpful for diagnosing issues. However, there are cases where one may want to ignore specific errors that are not critical to their workflow.
Ignoring specific errors when (setq debug-on-error t) is activated
Open the Emacs configuration file, typically located at ~/.emacs
or ~/.emacs.d/init.el
. Then use the debug-ignored-errors
variable to make Emacs ignore a specific error:
(add-to-list 'debug-ignored-errors 'specific-error-symbol)
Code language: plaintext (plaintext)
Replace 'specific-error-symbol
with the actual error that the specific function might raise.
Example
Suppose you encounter the search-failed
error in Emacs (Evil package) when searching for a non-existent pattern:
Debugger entered--Lisp error: (search-failed "my-pattern")
signal(search-failed ("my-pattern"))
evil-ex-start-search(forward nil)
evil-ex-search-forward(nil)
funcall-interactively(evil-ex-search-forward nil)
command-execute(evil-ex-search-forward)
Code language: plaintext (plaintext)
To make Emacs ignore the search-failed
error above, the following can be used:
(add-to-list 'debug-ignored-errors 'search-failed)
Code language: plaintext (plaintext)