Exc_Root.HasSuppressedMsg


Синтаксис

PROPERTY [RO, NE] HasSuppressedMsg: SCAL[2];

Описание

Флаг поднят, если с исключением связано подавленное сообщение, сброшен в противном случае.

Будет или не будет показано сообщение, зависит от действующего режима подавления сообщений. Режим подавления изменяется атрибутом MSGSUPPRESSIONMODE TRY-блока.

Некоторые сообщения не связаны с исключениями. Ниже приведены примеры таких сообщений.
STDMSG("Привет", INFORM);
STDFORM("Привет");                    (* Код исключения не задан *)
STDFORM("Привет|%<OK>B %<Cancel>X");  (* Код исключения не задан *)
Если такое сообщение подавлено, оно потеряно окончательно и больше не может быть воспроизведено.

Другие сообщения связаны с исключениями. Такие сообщения либо информируют пользователя о произошедшей ошибке, либо дают пользователю какой-то выбор, причем нажатие кнопки отказа приводит к выбросу исключения. Ниже приведены примеры таких сообщений.
STDMSG("Привет", STOP, 33);                 (* Exc_Raise 33 *)
STDMSG("Привет", STOP);                     (* Exc_Raise -1 *)
STDMSG("Привет", CHOICE);                   (* Exc_Raise -1 если нажата кнопка "СТОП" *)
STDFORM("Привет|%<OK>B %<Cancel>X", , 33);  (* Exc_Raise 33 если нажата кнопка "Cancel"*)
Системные сообщения как правило тоже связаны с каким-то исключением. Например, системное сообщение "Индекс вышел за границы" связано с исключением 12 класса Exc_RunTime.

Если связанное с исключением сообщение подавлено, оно еще не потеряно для программиста; скрытая копия подавленного сообщения хранится в объекте класса Exc_Root. Если в момент вылета необработанного исключения за пределы TRY-блока флаг Exc_Root.ShowSuppressedMsg поднят, будет предпринята попытка показать сообщение. Результат зависит от действующего режима подавления сообщений, возможно, сообщение будет вновь подавлено или отложено. По умолчанию флаг Exc_Root.ShowSuppressedMsg поднят.