Оператор выполняет обработку ошибок и исключительных ситуаций
Синтаксис
Оператор Попытка .. Исключение
имеет следующий синтаксис:
Попытка // Операторы программы Исключение // Операторы обработки исключения [ВызватьИсключение;] КонецПопытки;
А также альтернативный англоязычный синтаксис:
Try // program operators Except // exception operators [Raise;] EndTry;
Описание
Оператор Попытка .. Исключение .. КонецПопытки
управляет ходом выполнением программы, обрабатывая ошибочные (исключительные) ситуации, которые могут возникнуть при выполнении кода на встроенном языке 1С:Предприятие 8.
Если в ходе выполнения операторов программы, расположенных в блоке Попытка .. Исключение
, произошла ошибка (в т.ч. в вызовах вложенных процедур и функций), их выполнение прерывается, а управление передается на первый оператор после ключевого слова Исключение
. После выполнения операторов обработки исключения, расположенных в блоке Исключение .. КонецПопытки
, управление передается на первый оператор после ключевого слова КонецПопытки
.
Если же операторы программы, расположенные в блоке Попытка .. Исключение
, выполнились без ошибок, то операторы, расположенные в блоке Исключение .. КонецПопытки
, будут пропущены и управление будет передано на первый оператор после ключевого слова КонецПопытки
.
Конструкции Попытка .. Исключение .. КонецПопытки
могут быть вложенными. В таком случае, при возникновении исключительной ситуации управление передается на тот обработчик, в попытке которого произошла ошибка.
Если в последовательности операторов, расположенных в блоке Исключение .. КонецПопытки
, выполняется оператор ВызватьИсключение
, генерируется исключение, которое обрабатывается вышестоящим обработчиком Попытка .. Исключение .. КонецПопытки
. Если такового нет, исключительная ситуация обрабатывается системно с прекращением выполнения программного модуля (пользователю будет выдана ошибка).
ВызватьИсключение
можно прерывать выполнение программы в нужный момент (в т.ч. с выдачей сообщения об ошибке пользователю)Доступность
Версия | Поддержка |
---|---|
8.1 | Сервер, Клиент, Внешнее соединение |
8.2 | Сервер, Толстый клиент, Тонкий клиент, Веб-клиент, Внешнее соединение |
8.3 | Сервер, Толстый клиент, Тонкий клиент, Веб-клиент, Внешнее соединение, Мобильный автономный сервер, Мобильный клиент, Мобильное приложение |
Пример использования
Пример кода с использованием оператора Попытка
:
тзПродажи = Новый ТаблицаЗначений; тзПродажи.Колонки.Добавить("Сумма"); //... Попытка СреднееЗначение = тзПродажи.Итог("Сумма") / тзПродажи.Количество(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; //Результат: //{ВнешняяОбработка.ТестФорм.Форма.ОбычнаяФорма.Форма(14)}: Деление на 0