Ошибки
Когда Emacs Lisp пытается оценить форму, которая по какой-то причине не может быть оценена, он сигнализирует об ошибке.
Когда сигнализируется ошибка, стандартная реакция Emacs — вывести сообщение об ошибке и завершить выполнение текущей команды. Это правильное действие в большинстве случаев, например, если вы набираете C-f в конце буфера.
В сложных программах простое завершение может быть не тем, что нужно. Например, программа может внести временные изменения в структуры данных или создать временные буферы, которые следует удалить перед завершением программы. В таких случаях вы используете unwind-protect для установления выражений очистки, которые будут оцениваться в случае ошибки. (См. Очистки.) Иногда вам может потребоваться, чтобы программа продолжала выполнение несмотря на ошибку в подпрограмме. В этих случаях вы используете condition-case для установления обработчиков ошибок, чтобы восстановить контроль в случае ошибки.
Сопротивляйтесь соблазну использовать обработку ошибок для передачи управления из одной части программы в другую; используйте catch и throw вместо этого. См. Перехват и бросок.
| • Сигнализация об ошибках | Как сообщить об ошибке. | |
| • Обработка ошибок | Что делает Emacs, когда вы сообщаете об ошибке. | |
| • Обработка ошибок | Как вы можете перехватывать ошибки и продолжать выполнение. | |
| • Символы ошибок | Как ошибки классифицируются для их перехвата. |
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Errors.html