Процедура регистрации ошибок
Вызов процедуры
ON ERROR DO errhand WITH ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( )
Тело процедуры
Результат выводится в текстовый файл out_err.txt и окно ошибок,
PROCEDURE errhand
PARAMETER merror, MESS, mess1, mprog, mlineno
IF FILE("out_err.txt") && определяем есть ли файл для записи ошибок
gnerrorfile=FOPEN('out_err.txt',12)
ELSE
gnerrorfile = FCREATE('out_err.txt') && If not create it
ENDIF
= FSEEK(gnerrorfile, 0, 2) && указатель записи на конец файла
* пишем в конец файла данные об ошибке
= FPUTS(gnerrorfile,"===================================")
= FPUTS(gnerrorfile, DTOC(DATE()) + " "+TIME())
error1 = 'Error number: ' + ALLTRIM(STR(merror))
= FPUTS(gnerrorfile, error1)
= FPUTS(gnerrorfile, 'Error message: ' + MESS)
= FPUTS(gnerrorfile, 'Line of code with error: ' + mess1)
= FPUTS(gnerrorfile, 'Line number of error: ' + LTRIM(STR(mlineno)))
= FPUTS(gnerrorfile, 'Program with error: ' + mprog)
= FFLUSH(gnerrorfile)
*!* Выводим сообщение на экран
? CHR(7)
m_11 = error1 +chr(13)+;
'Error message: ' + MESS +chr(13) + ;
'Line of code with error: ' + mess1 +chr(13)+ ;
'Line number of error: ' + LTRIM(STR(mlineno)) + chr(13)+ ;
'Program with error: ' + mprog
=FCLOSE(gnerrorfile)
m_bb=MESSAGEBOX(m_11, 1, dflabel)
DO CASE
CASE m_bb = 1
* нет действий
CASE m_bb = 2
CANCEL
clea all
ENDCASE
RETURN
A.Пинигин, СБОРНИК прибамбасов для VFP по материалам конференций, литературы и собственных разработок. г. Рига E-mail: apinigin@olainfarm.lv