HALT( [ ErrorCode: NUMERIC[0] ]; [ AbortProg: ABORTPROG_IDENT ] ); ABORTPROG_IDENT = ABORTPROG |
Если параметр ErrorCode равен нулю, процедура успешно завершает выполнение текущей программы, не выбрасывая исключения. Если же параметр ErrorCode не равен нулю, процедура выбрасывает исключение класса Exc_Halt с кодом ErrorCode; выброс исключения не сопровождается сообщением об ошибке. По умолчанию параметр ErrorCode принимает значение -1.
Параметр ABORTPROG указывает, следует ли сбросить очередь команд, если выброшенное данной процедурой необработанное исключение завершит выполнение программного комплекса.
Способ запуска программного комплекса | Наличие ABORTPROG | Поведение |
---|---|---|
Опциями RunProg, CALL или CallBP | нет | Если на старте программного комплекса очередь событий была непуста,
будет выброшено исключение 547. Опции, добавленные процедурой LIKEMENU в данном программном комплексе, будут исполнены |
есть | Исполнение очереди команд меню будет прекращено | |
В качестве обработчика события | нет | Исполнение или аннулирование опций, уже
бывших в очереди до запуска программного комплекса зависит только от
типа события. Опции, добавленные процедурой LIKEMENU в данном программном комплексе, будут исполнены независимо от типа события |
есть | Исполнение или аннулирование всей очереди команд зависит только от типа события |
Параметр ABORTPROG является пережитком, от его применений следует избавляться. В частности, комбинацию "STDFORM без исключения, по нажатию кнопки отказа 'X' - HALT(, ABORTPROG)" следует заменять кнопкой отказа типа 'Z', выбрасывающей исключение Exc_Halt, прерывающее исполнение очереди команд.