Базовый курс JavaScript
-
1) console.log(), Переменные
-
2) Типы данных, Операторы
-
3) Условные конструкции
-
4) Объекты, массивы
-
5) Циклы
-
6) Функции. Диалоговые окна
-
7) Результат функции. Стрелочная фукция
-
8) callback, find, filter
-
9) Введение в методы и свойства
-
10) Методы строк и чисел
-
11) Методы массивов
-
12) Работа с DOM
-
13) Элементы,HTMLCollection и NodeList
-
14) Создание, добавление, замена и удаление элементов. Управление атрибутами элементов. Свойство className
-
15) addEventListener()
-
16) window, event
-
17) Работа с формами
-
18) Таймеры. this
-
JSON
-
19) Обработка ошибок
-
20) JSON, Promise, async и await
-
21) callBack()
-
22) fetch
-
7) Взаимодействие с DOM (Document Object Model)
-
23) LocalStorage, sessionStorage
19) Обработка ошибок
Конструкция try..catch..finally
try {
инструкции блока try
}
catch (error) {
инструкции блока catch
}
finally {
инструкции блока finally
}
После оператора try определяется блок кода. В этот блок помещаются инструкции, при выполнении которых может возникнуть потенциальная ошибка.
Затем идет оператор catch. После этого оператора в круглых скобках указывается название объекта, который будет содержать информацию об ошибке. И далее идет блок catch. Этот блок выполняется только при возникновении ошибки в блоке try.
После блока catch идет оператор finally со своим блоком инструкций. Этот блок выполняется в конце после блока try и catch вне зависимости, возникла ошибка или нет.
Стоит отметить, что только блок try является обязательным. А один из остальных блоков — catch или finally мы можем опустить. Однако один из этих блоков (не важно catch или finally) обязательно должен присуствовать. То есть мы можем использовать следующие варианты этой конструкции:
try…catch
try…finally
try…catch…finally
Генерация ошибок и оператор throw
Оператор throw используется для ручного выброса (генерации) исключений. С его помощью можно создать и отправить сообщение об ошибке, чтобы сигнализировать о проблеме в коде.
Как работает throw
- С помощью
throwможно выбрасывать:- Объекты встроенного класса
Error. - Пользовательские ошибки (например, строки, числа или объекты).
- Объекты встроенного класса
- После вызова
throwвыполнение кода немедленно прекращается, и управление передается ближайшему блокуcatch(если он есть).
function divide(a, b) {
if (b === 0) {
// Генерация ошибки
throw new Error("Деление на ноль невозможно");
}
return a / b;
}
try {
console.log(divide(10, 0)); // Ошибка
} catch (error) {
console.error("Ошибка:", error.message); // "Ошибка: Деление на ноль невозможно"
}
Примеры использования throw
//Ошибка HTTP-запроса
function fetchData(url) {
if (!url) {
throw { code: 400, message: "URL не указан", hint: "Укажите URL для запроса" };
}
// Симуляция ошибки
throw { code: 404, message: "Ресурс не найден" };
}
try {
fetchData(""); // Пробуем вызвать без URL
} catch (error) {
console.error(`Ошибка ${error.code}: ${error.message}`);
console.info(`Подсказка: ${error.hint}`);
}
//Ошибка аутентификации
function authenticateUser(user) {
if (!user) {
throw { code: 401, message: "Пользователь не найден" };
}
if (!user.isActive) {
throw { code: 403, message: "Доступ запрещен. Активируйте учетную запись." };
}
return "Успешная аутентификация";
}
try {
authenticateUser({ isActive: false });
} catch (error) {
console.error(`Ошибка ${error.code}: ${error.message}`);
}
Класс Error и его свойства
Класс Error используется для создания ошибок. Его основные свойства:
name: Имя ошибки (по умолчанию"Error").message: Сообщение об ошибке.stack: Стек вызовов (полезно для отладки).
try {
throw new Error("Это пример ошибки");
} catch (error) {
console.log("Имя ошибки:", error.name); // "Error"
console.log("Сообщение ошибки:", error.message); // "Это пример ошибки"
console.log("Стек вызовов:", error.stack); // Стек вызовов
}