try/catch/finally-определение в JavaScript

Определение и использование

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

Ошибка может быть вызвана ошибками в коде, созданными программистом, ошибками ввода, а также другими не предсказуемыми ситуациями.

try-определение позволяет определить блок кода, который необходимо проверять на наличие ошибок при выполнении.

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

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

Комментарий:Инструкции catch и finally являются необязательными, но при использовании инструкции try необходимо использовать одну из них (или обе одновременно).

Совет:Когда происходит ошибка, JavaScript обычно останавливается и генерирует сообщение об ошибке. Используйте инструкцию throw для создания пользовательских ошибок (выбросов исключений). Если использовать throw с try и catch, можно контролировать поток программы и генерировать пользовательские сообщения об ошибках.

Для получения более подробной информации о JavaScript ошибках, изучите уроки по ошибкам JavaScript.

Пример

В этом примере мы сделали ошибку в тексте кода (в блоке try).

Этот пример должен показывать "Welcome guest!", но拼写 alert ошибочна.

Блок catch будет ловить ошибки и выполнять код для их обработки:

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
  adddlert("Welcome guest!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>

попробуйте сами

Ниже есть больше примеров TIY.

Синтаксис

try {
  tryCode - Блок кода для尝试
}
catch(err) {
  catchCode - Блок кода для обработки ошибок
} 
finally {
  finallyCode - Блок кода, который будет выполнен независимо от результата try / catch
}

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

Параметр Описание
tryCode Обязателен. Код, который нужно проверить на ошибку при выполнении.
err Обязателен, если используется с catch. Указывает локальную переменную, на которую ссылается ошибка. Эта переменная может ссылаться на объект Error (содержащий информацию о произошедшей ошибке, например, сообщение "'addlert' is not defined"). Если исключение создано с помощью инструкции throw, переменная ссылается на объект, указанный в инструкции throw (см. "Более сложные примеры").
catchCode Доступно. Код, который выполняется, если в блоке try происходит ошибка. Если ошибка не произошла, этот код никогда не будет выполнен.
finallyCode Доступно. Код, который всегда выполняется, независимо от результата try / catch.

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

Версия JavaScript: ECMAScript 3

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

Пример

Этот пример проверяет ввод. Если значение неправильное, то выбрасывается исключение (err).

catch 语句捕获异常 (err) 并显示自定义错误消息:

<!DOCTYPE html>
<html>
<body>
<p>Введите число между 5 и 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="message"></p>
<script>
function myFunction() {
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").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) {
    message.innerHTML = "Input " + err;
  }
}
</script>
</body>
</html>

попробуйте сами

Пример

finally 语句让你在 try 和 catch 之后执行代码,而不管结果如何:

function myFunction()
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "Empty";
    if(isNaN(x)) throw "Not a number";
    if(x > 10) throw "Too high";
    if(x < 5) throw "Too low";
  }
  catch(err) {
    message.innerHTML = "Ошибка: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

попробуйте сами

поддержка браузера

запрос Chrome IE Firefox Safari Opera
try/catch/finally Поддержка Поддержка Поддержка Поддержка Поддержка

Соответствующие страницы

Уроки JavaScript:Ошибка JavaScript

Руководство JavaScript:Указание throw в JavaScript