Correct handling of execution errors
Posted: Wed Oct 26, 2022 8:08 pm
When executing the
DLLFUNCTION InternetGetConnectedState( @nFlags, nReserved ) USING STDCALL FROM WinInet.Dll
command, an execution error occurs if the Eidos system is already running. How would I handle this error and give the correct message to the user in this case?
Is it possible to apply the execution error handling block in case of a database access conflict when launching modes from the menu?
DLLFUNCTION InternetGetConnectedState( @nFlags, nReserved ) USING STDCALL FROM WinInet.Dll
command, an execution error occurs if the Eidos system is already running. How would I handle this error and give the correct message to the user in this case?
Is it possible to apply the execution error handling block in case of a database access conflict when launching modes from the menu?
Code: Select all
****** Обработка ошибки ******************
bError := ErrorBlock( {|e| Break(e)} ) // установить новый кодовый блок обработки ошибок
BEGIN SEQUENCE // код нормального исполнения
*** код нормального исполнения
DCMENUBAR oMenuBar OWNERDRAW BARBITMAP 'Checkers.bmp'
DCSUBMENU oMenu1 PROMPT L('1. Администрирование') PARENT oMenuBar MESSAGE L('Подсистема администрирования')
* DCMENUITEM SEPARATOR PARENT oMenu1
DCMENUITEM L('1.1. Авторизация ') PARENT oMenu1 ACTION {|| IF( !Running(), F1_1(),LB_Warning(sms,cmc)) } MESSAGE L('Авторизация сисадмина, администратора приложения или пользователя')
DCMENUITEM L('1.2. Регистрация администратора приложения ') PARENT oMenu1 ACTION {|| IF( !Running(), F1_2(),LB_Warning(sms,cmc)) } MESSAGE L('Регистрация и удаление регистрации администраторов приложений и задание паролей пользователей. Этот режим доступен только системному администратору и администраторам приложений')
***
***
RECOVER // код обработки ошибки
aMess := {}
AADD(aMess, L('При распознавании была попытка превышения максимального допустимого объема БД 2 Гб.')) // НАПРИМЕР
AADD(aMess, L('Необходимо уменьшить количество классов или/и объектов распознаваемой выборки !!! '))
AADD(aMess, L('Можно также исключить из результатов распознавания наименее достоверные (режим 3.5)'))
LB_Warning(aMess)
* EXIT
ENDSEQUENCE
ErrorBlock( bError ) // переустановить старый кодовый
******************************************