Що таке помилка (error) у JavaScript?
Помилка (error) у JavaScript - це об'єкт, який представляє проблему, що виникла під час виконання програми. Коли JavaScript стикається із ситуацією, яку не може обробити (наприклад, ділення на нуль, звернення до неіснуючої змінної, неправильний синтаксис тощо), він створює об'єкт помилки і "кидає" (throw) його. Якщо помилку не "спіймати" (catch), виконання коду перерветься.
Основна ідея
Помилки потрібні для контролю непередбачених ситуацій - щоб програма не "падала" несподівано, а могла обробити проблему і продовжити роботу коректно.
Приклад виникнення помилки
console.log(a); // ReferenceError: a is not definedТут змінна a не оголошена, тому інтерпретатор створює і викидає помилку ReferenceError.
Обробка помилок (try...catch)
Щоб програма не переривалася, помилки можна обробляти за допомогою конструкції try...catch:
try {
let result = JSON.parse("invalid JSON");
} catch (error) {
console.log("Сталася помилка:", error.message);
}У цьому прикладі програма не впаде, а просто виведе повідомлення:
Сталася помилка: Unexpected token i in JSON at position 0Основні типи помилок
| Тип помилки | Коли виникає |
|---|---|
| ReferenceError | Звернення до неіснуючої змінної |
| TypeError | Неправильний тип даних (наприклад, виклик не-функції) |
| SyntaxError | Помилка в синтаксисі коду |
| RangeError | Вихід значення за допустимий діапазон |
| EvalError | Неправильне використання eval() |
| URIError | Помилка під час роботи з функціями кодування URI (decodeURI, encodeURI) |
Створення власних помилок
Можна самостійно створити і викинути помилку за допомогою throw:
function divide(a, b) {
if (b === 0) {
throw new Error("Ділення на нуль неможливе!");
}
return a / b;
}
try {
divide(5, 0);
} catch (err) {
console.log(err.message); // Ділення на нуль неможливе!
}Ключові методи і властивості об'єкта Error
| Властивість | Опис |
|---|---|
name | Ім'я типу помилки (TypeError, ReferenceError тощо) |
message | Опис помилки |
stack | Трасування стека (показує, де сталася помилка) |
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.