У 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