Difference between revisions of "PopError"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 08:52, 7 February 2021
PopError (Функции работы с исключениями) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция получает описание текущего исключения, собирая его из требуемых частей. Информация об исключении удаляется из очереди (но не само исключение). Функцию рекомендуется использовать внутри блока Except ... EndTry
. Если удалить информацию об исключении, к примеру, в блоке Finally ... EndTry
, исключение по-прежнему остановит исполнение программы, однако, информация по нему не будет выведена в лог, что может затруднить отладку ошибочных ситуаций.
Синтаксис
PopError(<Режим (INT)>=15):<Описание исключения (STRING)>
Аргументы
<Режим (INT)>
- (необязательный аргумент) Режим создания текста исключения. Параметр представляет собой битовую маску, состоящую из:- бит 0 (1) (по умолчанию) -- включает в описание место исключения в программном тексте (в виде
(<Внутренний номер исключения> at <Строка>:<Столбец>)
) - бит 1 (2) (по умолчанию) -- включает в описание информацию о типе исключения (к примеру
Division error
) - бит 2 (4) (по умолчанию) -- включает в описание специфическую информацию об исключении (к примеру имя реквизита, который не был найден в заданном объекте, что послужило причиной исключения)
- бит 3 (8) (по умолчанию) -- включает в описание путь к модулю, внутри которого произошло исключение.
- бит 0 (1) (по умолчанию) -- включает в описание место исключения в программном тексте (в виде
Возвращаемое значение
Возвращает описание исключения в виде UTF-16 строки.
Примеры
Message(1); Try Message(2); Raise "Пользовательское исключение"; Message(3); Except Message(4); Message(PopError(2),"!"); Message(PopError(),"!"); EndTry; Message(5); //Последовательность выводит в лог следующую информацию: //1 //2 //4 //User defined error // //5 // //Второй вызов PopError() уже не получает информации об исключении, так как первый вызов удалил ее из очереди исключений.