Описание встроенного языка системы 1С Предприятие

         

Попытка


Обработка исключительных ситуаций.

Синтаксис:

Попытка

   // Некоторые действия;

Исключение

   // Обработка исключительной ситуации;

КонецПопытки;

Англоязычный Синтаксис:

Try

   // Некоторые действия;

Except

   // Обработка исключительной ситуации;

EndTry;



Параметры:

// Некоторые действия

Исполняемый оператор или последова­тельность таких операторов.

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

Исполняемый оператор или последовательность операторов, которые обраба­тывают исключительную ситуацию.

Исключение

Операторы, следующие за ключевым словом Исключение выполняются, если при выполнении последовательно­сти операторов <// Некоторые действия> произошла ошибка времени вы­полнения.

КонецПопытки

Ключевое слово, которое завершает структуру оператора обработки исклю­чительных ситуаций.

Описание:

Оператор Попытка управляет выполнением программы, основываясь на возникающие при выполнении модуля ошибочные (исключительные) ситуации и определяет обработку этих ситуаций.

В качестве ошибочных (исключительных) ситуаций воспринимаются ошиб­ки времени выполнения модуля. Не предусмотрено определяемых пользовате­лем исключений.

Если при выполнении последовательности операторов <// Некоторые действия> произошла ошибка времени выполнения, то выполнение оператора, вызвавшего ошибку прерывается и управление передается на первый оператор последовательности операторов <// Обработка исключительной ситуации>. При этом управление будет передано даже в том случае, если ошибку вызвал оператор, находящийся в процедуре или функции, вызванной из <// Некото­рые действия>. Если ошибка произошла в вызванной процедуре или функции, то ее выполнение будет прервано, а локальные переменные уничтожены. Это справедливо для любой вложенности вызовов. После выполнения последова­тельности операторов <// Обработка исключительной ситуации> управление передается на следующий за ключевым словом КонецПопытки оператор. Если же последовательность <// Некоторые действия> выполнилась без ошибок, то последовательность операторов <// Обработка исключительной ситуации> будет пропущена и управление также будет продолжено с оператора, следующе­го за ключевым словом КонецПопытки.




Конструкции Попытка-Исключение-КонецПопытки могут быть вложен­ными. При этом, при возникновении исключительной ситуации управление будет передано на самый «внутренний» обработчик, начинающийся с ключево­го слова Исключение. Последовательность операторов <// Обработка ис­ключительной ситуации> может содержать оператор ВызватьИсключение (англоязычный синоним Raise). Выполнение данного оператора прекращает выполнение последовательности <// Обработка исключительной ситуации> и производится поиск более «внешнего» обработчика. Если таковой есть, то управление передается на его первый оператор. Если нет, то выполнение моду­ля прекращается с выдачей сообщения о первоначально возникшей ошибке. Оператор ВызватьИсключение может встречаться только внутри операторных скобок Исключение ... КонецПопытки.

В выдаче диагностики помощь может оказать встроенная функция ОписаниеОшибки() (англоязычный синоним GetErrorDescription). Эта функция не имеет параметров, а в качестве значения возвращает описание ошибки, такое же, как было бы выдано в окне сообщений, в случае отсутствия обработчика исключительной ситуации, за исключением описания модуля и строки, в которой ошибка возникла. Применять данную функцию имеет смысл только при выполнении последовательности операторов <// Обработка исклю­чительной ситуации>, так как в ином случае она вернет пустую строку.

Пример:

Процедура СформироватьВЕхсеl()

   Попытка

      // пытаемся обратиться к программе MS Excel

      Табл = СоздатьОбъект("Excel.Application");

   Исключение

      Предупреждение(ОписаниеОшибки() +

           "; Excel не установлен на данном компьютере!");

      Возврат;

   КонецПопытки;

   // Формирование отчета

   ...

КонецПроцедуры


Содержание раздела