JavaScript - Обработка ошибок и исключений
Здравствуйте, будущие маги JavaScript! ? Добро пожаловать в наш увлекательный экскурс в мир обработки ошибок в JavaScript. Как ваш доброжелательный компьютерный учитель, я здесь, чтобы направить вас в этом приключении. Так что пристегнитесь и погружайтесь с нами!
Что такое ошибка?
Представьте, что вы пекете торт ?, и случайно используете соль вместо сахара. Это и есть ошибка! В программировании ошибки такие же - это непредвиденные проблемы, которые возникают при выполнении нашего кода. Это могут быть опечатки, логические ошибки или даже проблемы с данными, с которыми мы работаем.
Вот пример простой ошибки в JavaScript:
console.log(Hello, World!);
Если вы выполните этот код, у вас появится ошибка, потому что мы забыли поставить кавычки вокруг нашего текста. JavaScript ожидает, чтобы строки были в кавычках.
Что такое обработка ошибок?
Обработка ошибок - это как иметь страховочную сетку, когда вы идете по канату. Это способ优雅но управлять ошибками в нашем коде, предотвращая полный крах нашей программы, когда что-то идет не так.
Стatement try...catch...finally
Статмент try...catch...finally
- наш основной инструмент для обработки ошибок в JavaScript. Это как тройца супергероев, приходящих на помощь! ?♀️?♂️?♀️
Вот как это работает:
try {
// Код, который может вызвать ошибку
let result = 10 / 0;
console.log(result);
} catch (error) {
// Код для обработки ошибки
console.log("Ой! Произошла ошибка:", error.message);
} finally {
// Код, который всегда выполняется, независимо от ошибок
console.log("Это всегда выполняется!");
}
В этом примере:
- Блок
try
содержит код, который может вызвать ошибку (деление на ноль). - Если occurs error, блок
catch
перехватывает его и обрабатывает его优雅но. - Блок
finally
всегда выполняется, независимо от наличия ошибки или нет.
Statement throw
Иногда мы хотим создавать свои собственные пользовательские ошибки. Для этого используется statement throw
. Это как быть судьей в игре и назначить фол! ?
Вот пример:
function checkAge(age) {
if (age < 0) {
throw new Error("Возраст не может быть отрицательным!");
}
console.log("Возраст действителен:", age);
}
try {
checkAge(-5);
} catch (error) {
console.log("Перехвачена ошибка:", error.message);
}
В этом коде мы бросаем пользовательскую ошибку, когда кто-то пытается использовать отрицательный возраст. Блок catch
затем обрабатывает эту ошибку.
Событие onerror
Событие onerror
- это как иметь бдительного хранителя для всего вашего приложения на JavaScript. Оно перехватывает ошибки, occurring anywhere в вашем коде.
Вот как вы можете использовать его:
window.onerror = function(message, source, lineno, colno, error) {
console.log("Произошла ошибка:");
console.log("Сообщение:", message);
console.log("Источник:", source);
console.log("Строка:", lineno);
console.log("Столбец:", colno);
console.log("Объект ошибки:", error);
return true;
};
// Это вызовет обработчик onerror
nonExistentFunction();
Этот код устанавливает глобальный обработчик ошибок, который будет перехватывать любые не перехваченные ошибки в вашем приложении.
Справочник по объекту ошибки JavaScript
JavaScript предоставляет несколько встроенных типов ошибок. Давайте посмотрим на них в удобной таблице:
Тип ошибки | Описание |
---|---|
Error | Общий тип ошибки |
SyntaxError | Возникает, когда в коде есть синтаксическая ошибка |
ReferenceError | Возникает при обращении к несуществующей переменной |
TypeError | Возникает, когда значение не того типа, который ожидался |
RangeError | Возникает, когда число выходит за разрешаемый диапазон |
URIError | Возникает при использовании неправильных функций URI |
EvalError | Возникает в relation к функции eval() |
Вот пример того, как могут возникать эти ошибки:
try {
// SyntaxError
eval("Hello World");
// ReferenceError
console.log(undefinedVariable);
// TypeError
null.f();
// RangeError
let arr = new Array(-1);
// URIError
decodeURIComponent("%");
} catch (error) {
console.log(error.name + ": " + error.message);
}
Каждая из этих строк вызовет другой тип ошибки, который наш блок catch
обработает.
И вот оно, мои дорогие студенты! Мы совершили путешествие по земле обработки ошибок в JavaScript. Помните, ошибки не ваши враги - они ценный отзыв, который помогает вам улучшить ваш код. Принимайте их, учитесь у них, и вскоре вы будете обрабатывать ошибки как профессионал! ?
Продолжайте программировать, продолжайте учиться и не забывайте получать удовольствие на этом пути! До встречи на следующем уроке! ?
Credits: Image by storyset