try/catch/finally-определение в JavaScript
- Предыдущая страница throw
- Следующая страница var
- Вернуться на один уровень выше Референсное руководство по операторам 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
- Предыдущая страница throw
- Следующая страница var
- Вернуться на один уровень выше Референсное руководство по операторам JavaScript