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


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


/p> После присвоения переданного параметра STRING ГРУППЕ (GROUP), процедура может определить, какая ошибка произошла, из значений CritType (номер ошибки), CritMsg (описание ошибки) и CritDev (отказавшее устройство). Затем, она может определить, какую опцию выбрать для конкретной ошибки и присвоить ее переменной RetVal.
Разрешенные значения для RetVal:
I Ignore (игнорировать ошибку)
R Retry (повторить действие, приведшее к ошибке)
A Abort (отменить действие, приведшее к ошибке)
F Fail (прекратить выполнение и выйти в ДОС)
Значение RetVal в конце процедуры определяет, как ошибка обработана. Выбранная опция возвращается присвоением ГРУППЫ переданному параметру *STRING в конце процедуры.
Пример:
Этот примерный код содержит два примера обработчиков критических ошибок. PrinterReady специфична для ошибок принтера, а ErrorProc - обработчик прочих ошибок.
PROGRAM
MAP
PrintReport !Процедура печати
PrinterReady(*STRING) !Обработчик ошибок принтера
ErrorProc(*STRING) !Обработчик остальных ошибок
.
CritParmGroup GROUP,PRE(Crt) !Описание группы параметров
Status LONG !Processing status, always 1
CritType SHORT !Critical error code, 1-12, 15
CritMsg STRING(25) !Critical error description
CritDev STRING(25) !Error device name string
RetVal STRING(L) !Action option chosen-A,I,R,or F
.
ErrFlag BYTE(0) !Флаг присутствия ошибки
CODE
PrintReport !Вызов процедуры-отчета
NOTIFY(ErrorProc,1) !Взводим обработчик общих оши-
! бок
!Здесь находится какой-то исполняемый код
PrintReport PROCEDURE
!Здесь описываем формат отчета
ErrScreen SCREEN(15,56),PRE(Scr),CQLOR(73),CENTER,SHADOW,CUA
ROW(1,1) STRING('г={54}ѓ')
ROW(2,1) REPEAT(13);STRING('Ѓ<O{54}>Ѓ')
ROW(15,1) STRING('L={54}-')
ROW(3,16) STRING('Ошибка -- Проверь принтер!')
ROW(13,16) STRING('Ошибка -- Проверь Принтер!')
.
CODE
NOTIFY(PrinterReady,1) !Взводим обработчик ошибок
! принтера
PRINT('<27>') !Посылаем ESC на принтер
IF ErrFlag !Была ли критическая ошибка?
OPEN(ErrScreen) ! вывести экран с предупрежд.



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



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