Правильная обработка ошибок в JavaScript
Каждый грамотный программист стремится писать код, который работает. Однако в долгосрочной перспективе вероятность того, что ваша программа будет работать, как ожидается, уменьшается. Ошибки в JavaScript могут быть сложными при определении, в частности, из-за динамической типизации присущей языку. Когда это происходит, программистам некого винить, кроме самих себя или самого языка. Было бы здорово, если бы мы все знали, как обнаружить эти ошибки, раскрыть и предотвратить их повторение.
Эта статья предполагает некоторые знания в JavaScript. Если вы хотите улучшить свои навыки, почему бы ни ознакомится с моим курсом JavaScript, jQuery и Ajax с Нуля до Гуру.
Моя цель - показать вам, как можно корректно обрабатывать ошибки JavaScript и избегать ненужного кода. Когда вы закончите, вы не будете бояться часто, использовать такие функции.
Категории ошибок
Ошибки в JavaScript можно разделить на две категории, фатальные ошибки и ошибки программиста.
Фатальные ошибки - это события, которые не могут быть предотвращены программистом. Например, программа просит пользователя ввести имя и возвращает пустую строку.
Ошибки программистам - это ошибки, сделанные программистом при написании программ. Их можно дополнительно подразделить на:
Ошибки синтаксиса
Это самый простой вид ошибок. Также они известны как ошибки синтаксического анализа, они встречаются во время компиляции и в традиционных языках программирования и во время интерпретации кода JavaScript. Проверьте код ниже:
var x = 2;
var y = 3;
console.log(x + y;
В приведенном выше примере последняя строка кода вызывает синтаксическую ошибку, так как отсутствует закрывающая скобка. Обычно, когда в JavaScript возникает синтаксическая ошибка, остальная часть кода в других потоках будет выполняться, если они не содержат ничего, что зависит от кода, содержащего ошибку.
Ошибки времени выполнения
Также известные как исключения, такие ошибки возникают, когда ваша программа выполняется, как правило, когда она уже была скомпилирована или интерпретирована. Рассмотрим блок кода ниже:
var windowObject;
var strWindowFeatures = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
function openPopup() {
windowObject = window.openObject("http://www.myrusakov.ru/", "Главная",strWindowFeatures);
}
Вышеупомянутая функция вызовет ошибку времени выполнения, потому что, хотя синтаксис верен, во время выполнения он пытается вызвать метод openObject(), который не существует.
Логические ошибки
Самая сложная из всех трех ошибок, логические ошибки возникают, когда вы делаете ошибку в логике программы, Эта ошибка заставляет программу изменять ожидаемые результаты или проявлять неожиданное поведение. Обычно очень сложно попытаться поймать и даже исправить логические ошибки, рассмотрим пример ниже:
function power(base, exponent) {
var result = 1;
for (var count = 0; count < exponent; count++)
result *= base;
return result;
}
Что делать, если кто-то пытается вызвать power (“JavaScript”, 10)? Ну, это, очевидно, ошибка программиста. Как насчет power (5, 0.2)? Быстрый взгляд на логику функции скажет вам, что она не может обрабатывать дробные показатели, но по закону математики, возможно возведение числа в дробную степень. JavaScript делает это через функцию Math.pow (). В таких ситуациях, когда не совсем ясно, какой вход принимает функция, явно указывается, какие аргументы приемлемы в комментариях или проверка ввода становится хорошей идеей.
На этом все, а в следующих статьях мы продолжим изучать тему обработки ошибок в JavaScript.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.