У JavaScript для обробки винятків (помилок під час виконання, як наприклад виклик недійсної функції або змінної), використовуються блоки try, catch та finally.

Конструкція try…catch у JavaScript

Синтаксис конструкції try...catch:

try {
  // body try block
} catch (error) {
  // body catch block
}

  • блок try містить код в якому може виникнути помилка
  • якщо в блоці try виникає помилка, виконання програми одразу переходить до блоку catch, котрий містить код для обробки цієї помилки
  • змінна error (можна обрати інше ім’я), містить об’єкт помилки, з інформацією про те що сталося
  • якщо помилки не виникає, виконується код всередині блоку try, блок catch ігнорується

Приклад:

try {
  const result = 10 / x; // x не визначено що призведе до помилки
} catch (error) {
  console.log('Error message: ', error.message);
}

// Error message:  x is not defined

У вищенаведеній програмі, при спробі звернення до невизначеної змінної x, виникає помилка котру перехоплює блок catch.

Конструкція try…catch…finally у JavaScript

Блок finally виконується у будь-якій ситуації (незалежно від того, чи виникла помилка у блоці try).

Приклад:

try {
  const result = 10 / x; // x не визначено що призведе до помилки
} catch (error) {
  console.log('Error message: ', error.message);
} finally {
  console.log('Finally operation');
}

// Error message:  x is not defined
// Finally operation

У вищенаведеній програмі, блок catch перехоплює та обробляє помилку яка виникла у блоці try, після чого виконується блок finally.

Також слід додати, що використання блоків catch або finally після блоку try, є обов’язковим. В іншому випадку буде отримано синтаксичну помилку:

try {
  console.log('try block');
}

// SyntaxError: Missing catch or finally after try


Мітки: