Оператор try...catch...finally

Обновлен: Ноябрь 2007

Реализует обработку ошибок в JScript.

try {
   [tryStatements]
} catch(exception) {
   [catchStatements]
} finally {
   [finallyStatements]}

Аргументы

  • tryStatements
    Необязательно. Операторы, в которых может возникнуть ошибка.

  • exception
    Обязательно. Любое имя переменной. Исходное значение exception является значением возникшей ошибки.

  • catchStatements
    Необязательно. Операторы обработки ошибок, возникших в соответствующем блоке tryStatements.

  • finallyStatements
    Необязательно. Операторы, безусловно выполняемые после выполнения всех остальных действий по обработке ошибки.

Заметки

Оператор try...catch...finally позволяет, не прерывая выполнение программы, обрабатывать некоторые или все возможные ошибки, которые могут возникать в конкретном блоке кода. Если возникает ошибка, обработка которой не предусмотрена программистом, в JScript просто выводится на экран обычное сообщение об ошибке, как в случае отсутствия обработки ошибок.

Аргументы tryStatements содержат код, где может возникнуть ошибка, а аргументы catchStatements содержат код для обработки возникающих ошибок. При возникновении ошибки в tryStatements управление программой передается catchStatements для обработки. Исходное значение exception является значением возникшей ошибки в tryStatements. Если ошибок нет, catchStatements не выполняется.

Если ошибку невозможно обработать в блоке catchStatements, связанном с блоком tryStatements, в котором произошла ошибка, используйте оператор throw для распространения ошибки на более высокий уровень обработчика ошибок.

После выполнения всех операторов в tryStatements и обработки всех ошибок catchStatements выполняются операторы в finallyStatements.

Обратите внимание, что код в finallyStatements выполняется безусловно, то есть даже в том случае, если оператор возврата находится внутри блоков try или catch или если ошибка возникает в блоке catch. Операторы в блоке finallyStatments будут выполнены в любом случае.

Пример

В следующем примере показана обработка ошибок в JScript.

try {
   print("Outer try running...");
   try {
      print("Nested try running...");
      throw "an error";
   } catch(e) {
      print("Nested catch caught " + e);
      throw e + " re-thrown";
   } finally {
      print("Nested finally is running...");
   }
} catch(e) {
   print("Outer catch caught " + e);
} finally {
   print("Outer finally running");
}

В результате выполнения кода создаются следующие выходные данные.

Outer try running..
Nested try running...
Nested catch caught an error
Nested finally is running...
Outer catch caught an error re-thrown
Outer finally running

Требования

Версия 5

См. также

Ссылки

Оператор throw

Объект "Error"