English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Предложение try...catch JavaScript

 Операторы и объявления переменных JavaScript

try ... catchПредложение обозначает блок кода, который нужно попробовать, и определяет ответ при возникновении исключения (ошибки).

Предложение try состоит из одного блока try, который содержит один или несколько предложений. {} всегда используется для одного предложения.

Необходимо наличие至少 одного предложения catch или finally. Это предоставляет три формы предложения try:

  • try...catch

  • try...finally

  • try...catch...finally

ИспользованиеtryПредложение может определить блок кода, который будет выполнен, и проверить на ошибки при выполнении.

catchПредложение позволяет определить блок кода, который будет выполнен, если в блоке try произойдет ошибка.

finallyВ определении, после try и catch, вы можете выполнять код, независимо от результата.

Внимание: Предложения catch и finally являются необязательными, но при использовании предложения try вам необходимо использовать одно из них (если их нельзя использовать одновременно).

ИспользованиеthrowОпределение пользовательских ошибок (выбрасывание исключений). Если выthrowИспользование вместе с try и catch позволяет определить поток программы и создавать пользовательские сообщения об ошибках (см. также "Дополнительные примеры").

Вы можете найти информацию о нас вУроки по JavaScript исключениямПознакомьтесь с дополнительной информацией о исключениях.

Синтаксис:

try {
   //try_statements-строки, которые нужно попробовать
}
catch(err) {
   //catch_statements-строки для обработки ошибок
}
finally {
  //finally_statements-строки, которые нужно выполнить независимо от результата try / catch
}
try {
   aaalert("Hello world");
}
catch(err) {
   document.getElementById("result").innerHTML = err;
}
Проверьте‹/›

Совместимость браузеров

Все браузеры полностью поддерживают try ... catch строки:

Statement
try...catchявляетсяявляетсяявляетсяявляетсяявляется

Значение параметра

ПараметрОписание
try_statementsСтроки для выполнения.
errИдентификатор объекта ошибки, связанного с catch-подпрограммой. См.Объект ошибки.
catch_statements(опционально) Строки, выполняемые при возникновении исключительной ситуации в блоке try. Если ошибка не произошла, этот код никогда не будет выполняться.
finally_statements(опционально) Строки, выполняемые после завершения try-строки. Эти строки выполняются независимо от того, была ли вызвана исключительная ситуация или捕获лена исключительная ситуация.

Технические детали

Версия JavaScript:ECMAScript 3

Более примеров

ВfinallyВ declarative, вы можете выполнять код, try и catch после этого, независимо от результата:

try {
   aaalert("Hello world");
}
catch(err) {
   document.getElementById("result").innerHTML = err;
}
finally {
   document.getElementById("result").innerHTML += "<h3>Выполнена строка finally</h3>";
}
Проверьте‹/›

catchиfinallyСтроки являются необязательными, но при использовании try-строки вам нужно использовать одну из них (если вы не можете использовать их одновременно):

try {
   aaalert("Hello world");
}
finally {
   document.getElementById("result").innerHTML = "Конечное выполненное выражение";
}
Проверьте‹/›

ИспользованиеthrowСтрока создания пользовательской ошибки (вызывает исключение):

function getRectArea(width, height) {
   if (isNaN(width) || isNaN(height)) {
  throw "Параметр не является числом!";
   }
}
try {
   getRectArea(5, 'Z');
}
catch(err) {
   document.getElementById('para').innerHTML = err;
}
Проверьте‹/›

Проверка ввода, если значение ошибочно, вызывается исключение (err).catchКаптюре исключения (err) и отображение пользовательского сообщения об ошибке:

var x = document.querySelector("input").value;
try {
   if(x == "") throw "is Empty";
   if(isNaN(x)) throw "Not a Number";
   if(x > 10) throw "too High";
   if(x < 5) throw "too Low";
}
catch(err) {
   document.getElementById("para").innerHTML = "Input " + err;
}
Проверьте‹/›

Ещё можно посмотреть

Учебник JavaScript:Исключения JavaScript

Референс JavaScript:Объект ошибки JavaScript

Референс JavaScript:Оператор throw JavaScript

 Операторы и объявления переменных JavaScript