APP.OnCallAuthor


Синтаксис

PROPERTY [RW, E] OnCallAuthor: STRING[];

Описание

Свойство содержит полное имя функции-регистратора исключений со стилем STOP_AND_CALL_AUTHOR (см. Exc_Root.MsgStyle), т.е. с отсылкой к разработчикам. Функция-регистратор должна принимать в качестве параметра дескриптор исключения, а возвращать строку с новым текстом описания исключения.

PROCEDURE OnCallAuthorExceptionHandler(exc: Exc_Root): STRING[];

Функция будет вызвана процедурным оператором CALL в момент первичного выброса исключения при соблюдении следующих условий:

  1. Поток исполнения не находится внутри функции-регистратора или внутри отладочного выражения (в отладчике).
  2. В точке выброса действует режим EXCEPTION_HANDLING_ON реагирования исполнительной системы.
  3. Программный комплекс - типа ASL, NTF или опция CALL/CallBP.
  4. Стиль сообщения об исключении - STOP_AND_CALL_AUTHOR.
  5. Свойство OnCallAuthor содержит непустую строку - составной идентификатор, соответствующая функция существует и подходит под вышеприведенное описание.
  6. Исключение содержит отложенное сообщение (Exc_Root.HasDeferredMsg), либо подавленное (Exc_Root.HasSuppressedMsg) неискаженное (~Exc_Root.SuppressedMsgIsGarbled) сообщение. Последнее условие существует, чтобы функция-регистратор не вызывалась, когда исключение является результатом нажатия пользователем кнопки отказа в сообщении-вопросе или подавления сообщения-вопроса. Отсылка к разработчикам в такой ситуации есть нонсенс, сопровождаемый исключением 543.

Если функция завершится успешно, возвращенная ею строка переопределит текст описания выброшенного исключения (Exc_Root.Description) и текст связанного (отложенного или подавленного) сообщения об ошибке. Возвращаемая функцией строка, подобно параметру message процедуры STDMSG, может содержать переводы строк, задаваемые символом '|', символом CHR(10) или подстрокой CHR(13)+CHR(10), а также тэги отчеркивания. Если функция-регистратор завершится необработанным исключением, оно будет перехвачено интерпретатором ASL и заменено исходным исключением. При любом завершении функции будет проброшено исходное исключение, либо с модифицированными описанием и сообщением, либо с исходными.