Spec-Zone.ru › Elisp

Ошибки

Когда Emacs Lisp пытается вычислить форму, которую по какой-либо причине невозможно вычислить, он сигнализирует об ошибке.

Когда сигнализируется ошибка, стандартная реакция Emacs — вывести сообщение об ошибке и прервать выполнение текущей команды. В большинстве случаев это правильно, например, если нажать C-f в конце буфера.

В сложных программах простое прерывание может быть нежелательным. Например, программа могла внести временные изменения в структуры данных или создать временные буферы, которые следует удалить до завершения программы. В таких случаях следует использовать unwind-protect, чтобы задать выражения очистки, которые будут вычислены в случае ошибки. (См. Очистка после нелокальных выходов.) Иногда может потребоваться продолжить выполнение программы, несмотря на ошибку в подпрограмме. В таких случаях следует использовать condition-case, чтобы задать обработчики ошибок, восстанавливающие управление в случае ошибки.

Чтобы сообщить о проблеме, не прерывая выполнение текущей команды, рассмотрите возможность выдачи предупреждения. См. Выдача предупреждений.

Не поддавайтесь искушению использовать обработку ошибок для передачи управления из одной части программы в другую; вместо этого используйте catch и throw. См. Явные нелокальные выходы: catch и throw.

  • Как сигнализировать об ошибке
  • Как Emacs обрабатывает ошибки
  • Написание кода для обработки ошибок
  • Символы ошибок и имена условий

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Errors.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API