Raise

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

Функция вызывает исключение 41 (ERR_USER) с требуемым описанием, если необходимо. Функция может вызываться как программный пример для прерывания циклов или каскадных вызовов функций. Исключение, созданное таким образом, не выходит за пределы текущего модуля (не будет прерывать исполнение в модуле, вызвавшем данный). Исключение, созданное внутри функции Exec будет действовать на модуль, вызвавший Exec. Созданное исключение можно отменить с помощью конструкции Except ... EndTry или функции SuppressException внутри конструкции Finally ... EndTry. Прежде чем остановить выполнение программы после возникновения исключения, система сначала выполнит все вложенные блоки Except ... EndTry и Finally ... EndTry, и, если ни в одном из блоков исключение не было отменено, выполнение текущего модуля будет прервано. Исключение, вызванное в момент выполнение событий OnOpen и подобных не только прерывает запуск модуля, но и закрывает его, возвращаясь к вызвавшему модулю, если такой имелся.

Синтаксис

Raise <Описание исключения (STRING)>

Аргументы

  • <Описание исключения (STRING)> - (необязательный аргумент) При создании исключения будет использовано указанное описание, без этого текста исключение создается без описания.


Примеры

//Функция пытается найти нужный элемент справочника, и, если он отсутствует, создает исключение с описанием ошибки.
aEl:=Ref.общТипыДополнительныхСвойств;
If not aEl.Find("Name,ВидСправочника","Дополнительный код номенклатуры",Enum.ВидыСправочниковСДопСвойствами.Номенклатура) Then
  Raise "Не найдено свойство номенклатуры с наименованием ""Дополнительный код номенклатуры""! Обратитесь к администратору!";
EndIf;

...