PeekError

From SunFlurry wiki
Jump to: navigation, search
  PeekError (Функции работы с исключениями)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Визуальность:Нет

Функция получает описание текущего исключения, собирая его из требуемых частей. Информация об исключении не удаляется из очереди исключений. Функцию можно использовать внутри блоков Except ... EndTry или Finally ... EndTry. Если при вызове функции в очереди исключений отсутствует по крайней мере одно исключение, функция возвратит пустую строку.

Синтаксис

PeekError(<Режим (INT)>=15):<Описание исключения (STRING)>

Аргументы

  • <Режим (INT)> - (необязательный аргумент) Режим создания текста исключения. Параметр представляет собой битовую маску, состоящую из:
    • бит 0 (1) (по умолчанию) -- включает в описание место исключения в программном тексте (в виде (<Внутренний номер исключения> at <Строка>:<Столбец>))
    • бит 1 (2) (по умолчанию) -- включает в описание информацию о типе исключения (к примеру Division error)
    • бит 2 (4) (по умолчанию) -- включает в описание специфическую информацию об исключении (к примеру имя реквизита, который не был найден в заданном объекте, что послужило причиной исключения)
    • бит 3 (8) (по умолчанию) -- включает в описание путь к модулю, внутри которого произошло исключение.

Возвращаемое значение

Возвращает описание исключения в виде UTF-16 строки.

Примеры

Message(1);
Try
  Message(2);
  Raise "Пользовательское исключение";
  Message(3);
Finally
  Message(4);
  Message(PeekError(2),"!");
  Message(PeekError(),"!");
EndTry;
Message(5);

//Последовательность выводит в лог следующую информацию:
//1
//2
//4
//User defined error
//(41 at 4:38) User defined error: Пользовательское исключение (AdmPanel.CustomTextExecute() (ExecuteTab))
//
//После чего исполнение программы прекращается с повторным выводом в лог информации об исключении:
//ERROR: (41 at 4:38) User defined error: Пользовательское исключение (AdmPanel.CustomTextExecute() (ExecuteTab))