Документация по Clarion


NOTIFY (обработка критических ошибок)


NOTIFY(процедура,событие)

процедура Метка ПРОЦЕДУРЫ, прототип которой, должен быть объявлен в MAP, как получающий *STRING-параметр (STRING передается по адресу).
событие Целочисленная константа, переменная или выражение. Если ноль, то процедура NOTIFY отменяется; если один, то критические ошибки DOS
обрабатываются процедурой.

Оператор NOTIFY "взводит" (SPA. А как еще перевести слово arms?) процедуру для обработки критических ошибок ДОС. Эта процедура получает параметр типа *STRING, на адрес которого, передается управление при возникновении критической ошибки.
Назначение этой ПРОЦЕДУРЫ - позволить Clarion-приложениям обрабатыать критические ошибки. ПРОЦЕДУРА может выполнять дисковые операции или любые другие действия. Выход из ПРОЦЕДУРЫ должен осуществляться оператором RETURN, (RESTART крайне не рекомендуется) и процедура должна выбирать и анализировать значение, которое DOS определяет для конкретной ошибки
STRING-параметр, передаваемый по адресу в процедуру может быть изначально назначен GROUP, для подавления необходимости синтаксического разбора строки для получения информации об ошибке. GROUP может быть описана как глобально (Глобальные Статические Данные) так и локально по отношению к модулю-ЧЛЕНУ (Локальные Статические Данные) для уменьшения потребностей в выделении памяти на стеке. GROUP может быть описана со следующими полями:
CritParmGroup GROUP,PRE(Crt) !Описание параметра-группы
Status LONG !Состояние обработки, 1 для критич.ошиб.
CritType SHORT !Код критической ошибки, 1-12, 15
CritMsg STRING(25) !Описание критической ошибки
CritDev STRING(25) !Имя устройства на котором ошибка
RetVal STRING(1) !Возвращаемое значение - A, I, R или F
.
Критические ошибки ДОС, которые могут быть обработаны ПРОЦЕДУРОЙ

CritType CritMsg
0 Защита от записи
1 Неверный номер диска
2 Диск(овод) не готов
3 Затребована неизвестная команда
4 Ошибка контрольной суммы (CRC)
5 Неверная длина структуры-запроса
6 Ошибка поиска
7 Неизвестный формат диска
8 Сектор не найден
9 В бумаге кончился принтер :-) :-)
10 Сбой при записи
11 Сбой при чтении
12 Общая, неспецифичная ошибка
15 Неверная смена диска (?)
<


- Начало -  - Назад -  - Вперед -



Книжный магазин