Skip to main content

Як створити помилку вручну?

Коротка відповідь

Щоб створити помилку вручну, напиши:

javascript
throw new Error("Повідомлення про помилку");

Як це працює

  1. new Error("текст") - створює об'єкт помилки.
  2. throw - викидає (генерує) це виключення.
  3. JS перериває виконання поточного блока і шукає найближчий try...catch.
  4. Якщо обробник знайдено - помилка туди "потрапляє". Якщо ні - програма падає з повідомленням про помилку.

Приклад 1. Просте створення помилки

javascript
try { throw new Error("Щось пішло не так!"); } catch (err) { console.log("Спіймано:", err.message); }

Вивід:

javascript
Спіймано: Щось пішло не так!

Приклад 2. Перевірка даних

Частий сценарій - валідація вхідних параметрів:

javascript
function divide(a, b) { if (typeof a !== "number" || typeof b !== "number") { throw new TypeError("Аргументи повинні бути числами!"); } if (b === 0) { throw new Error("Ділення на нуль неможливе!"); } return a / b; } try { console.log(divide(10, 0)); } catch (e) { console.log("Помилка:", e.message); }

Вивід:

javascript
Помилка: Ділення на нуль неможливе!

Приклад 3. Використання різних типів помилок

Можна викидати не тільки Error, а й його нащадків:

javascript
throw new TypeError("Невірний тип"); throw new RangeError("Вихід за межі діапазону"); throw new ReferenceError("Невизначена змінна");

Усі вони створюються так само, через new ...Error("повідомлення").


Приклад 4. Своя (кастомна) помилка

Можна створити власний тип помилки, успадкувавши його від Error:

javascript
class ValidationError extends Error { constructor(message) { super(message); this.name = "ValidationError"; } } function validateUser(user) { if (!user.name) { throw new ValidationError("Ім'я обов'язкове!"); } } try { validateUser({}); } catch (e) { console.log(`${e.name}: ${e.message}`); }

Вивід:

javascript
ValidationError: Ім'я обов'язкове!

Приклад 5. Викидати можна не тільки Error (але краще не варто)

javascript
throw "Довільний рядок"; throw 404; throw { message: "Помилка", code: 123 };

Однак так робити не рекомендується - це ламає стандартний формат помилок і робить код менш передбачуваним.

Краще завжди використовувати:

javascript
throw new Error("Повідомлення");

Приклад 6. Помилка без try...catch

Якщо throw використовується без обробки - програма зупиняється:

javascript
throw new Error("Критична помилка!"); console.log("Цей код не виконається");

Вивід:

javascript
Uncaught Error: Критична помилка!

Підсумок

Що використовуємоПризначення
throwВикидає виключення
ErrorБазовий клас помилок
TypeError, RangeError, ReferenceErrorСпеціалізовані типи помилок
try...catchОбробляє помилку
class CustomError extends ErrorСтворення власних помилок

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.