0

Оператор ВызватьИсключение

Оператор прекращения обработки исключительной ситуации

Синтаксис

Оператор ВызватьИсключение имеет простой синтаксис:

ВызватьИсключение;

А также альтернативный англоязычный синтаксис:

Raise;

Описание

Оператор ВызватьИсключение используется для преждевременного прекращения обработки исключительной ситуации в конструкции Попытка…КонецПопытки.

Следует отметить, что во встроенном языке 1С:Предприятие 7.7 не поддерживаются исключения, определенные пользователем. Поэтому, оператор ВызватьИсключение может располагаться только внутри блока, ограниченного ключевыми словами Исключение и КонецПопытки. При нарушении этого требования синтаксический анализатор выдаст ошибку: «Неопознанный оператор».

Пример использования

Пример кода с использованием оператора ВызватьИсключение

//в документ добавлен новый реквизит табличной части <Цена>
//теперь необходимо заполнить цены во всех документах
ДокументыМенеджер = СоздатьОбъект("Документ.РеализацияТМЦ");
ДокументыМенеджер.ВыбратьДокументы(ДатаНачала, ДатаОкончания);
Пока ДокументыМенеджер.ПолучитьДокумент() = 1 Цикл
    Попытка
        ДокументОбъект = СоздатьОбъект("Документ.РеализацияТМЦ");
        ДокументОбъект.НайтиДокумент(ДокументыМенеджер.ТекущийДокумент());
        //ошибка деления на ноль в обработке одного документа не должна приводить к прекращению всей обработки
        ДокументОбъект.ВыбратьСтроки();
        Пока ДокументОбъект.ПолучитьСтроку() = 1 Цикл
            ДокументОбъект.Цена = ДокументОбъект.Сумма / ДокументОбъект.Количество;
        КонецЦикла;
        ДокументОбъект.Записать();
    Исключение
        //информация обо всех ошибках выводится в окно сообщений
        Сообщить("" + ДокументОбъект + ": " + ОписаниеОшибки(), "!!!");
        Если Найти(ОписаниеОшибки(), "Деление на 0") = 0  Тогда
            //обработка прекратится при любой другой ошибке
            ВызватьИсключение;
        КонецЕсли;
    КонецПопытки;
КонецЦикла;

Поделиться страницей в соц.сетях

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *