Основы предупреждений
Каждое предупреждение имеет текстовое сообщение, которое объясняет проблему пользователю, и уровень серьезности, который является символом. Ниже приведены возможные уровни серьезности в порядке убывания серьезности и их значения:
:emergencyПроблема, которая в ближайшее время серьезно повлияет на работу Emacs, если вы не обратите на нее внимание своевременно.
:errorСообщение о данных или обстоятельствах, которые изначально неверны.
:warningСообщение о данных или обстоятельствах, которые сами по себе не несут ошибку, но вызывают подозрение о возможной проблеме.
:debugСообщение об информации, которая может быть полезной при отладке.
При обнаружении неверных входных данных программа может либо сгенерировать ошибку Lisp, вызвав error или signal, либо сообщить о предупреждении с уровнем серьезности :error. Генерация ошибки Lisp — это самое простое решение, но это означает, что программа не сможет продолжить обработку. Если вы хотите позаботиться о продолжении обработки несмотря на плохие данные, то сообщение о предупреждении уровня :error — правильный способ информировать пользователя о проблеме. Например, компилятор байт-кода Emacs Lisp может сообщать об ошибке таким образом и продолжать компиляцию других функций. (Если программа генерирует ошибку Lisp, а затем обрабатывает ее с помощью condition-case, пользователь не увидит сообщение об ошибке; его можно отобразить пользователю, сообщив об этом как о предупреждении.)
Каждое предупреждение имеет тип предупреждения для его классификации. Тип представляет собой список символов. Первый символ должен соответствовать настраиваемой группе, которую вы используете для параметров пользователя программы. Например, предупреждения компилятора байт-кода используют тип предупреждения (bytecomp). Вы также можете подразделить предупреждения, если хотите, используя больше символов в списке.
- Функция: display-warning тип сообщение &опционально уровень имя-буфера
-
Эта функция сообщает о предупреждении, используя сообщение в качестве сообщения и тип в качестве типа предупреждения. уровень должен соответствовать уровню серьезности, при этом
:warning— значение по умолчанию.имя-буфера, если оно не
nil, указывает имя буфера для регистрации предупреждения. По умолчанию это *Предупреждения*.
- Функция: lwarn тип уровень сообщение &остальные аргументы
Эта функция сообщает о предупреждении, используя значение
(format-message message args...)в качестве сообщения в буфере *Предупреждения*. В других отношениях она эквивалентнаdisplay-warning.
- Функция: warn сообщение &остальные аргументы
Эта функция сообщает о предупреждении, используя значение
(format-message message args...)в качестве сообщения,(emacs)в качестве типа и:warningв качестве уровня серьезности. Она существует только для совместимости; мы рекомендуем не использовать ее, потому что вам следует указать конкретный тип предупреждения.
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/Warning-Basics.html