TypeScript:
Обробка помилок

Як зробити:

У TypeScript обробка помилок часто включає блоки try, catch, та finally.

function riskyOperation() {
  throw new Error("Щось пішло не так!");
}

function handleErrors() {
  try {
    riskyOperation();
  } catch (error) {
    console.error("Помилка виловлена:", error.message);
  } finally {
    console.log("Це завжди виконується, з помилкою чи без.");
  }
}

handleErrors();

Приклад виводу:

Помилка виловлена: Щось пішло не так!
Це завжди виконується, з помилкою чи без.

Асинхронний приклад з обіцянками (promises):

async function asyncRiskyOperation() {
  return new Promise((resolve, reject) => {
    // Симуляція помилки
    reject("Зазнала краху");
  });
}

async function handleAsyncErrors() {
  try {
    await asyncRiskyOperation();
  } catch (error) {
    console.error("Асинхронна помилка виловлена:", error);
  }
}

handleAsyncErrors();

Приклад виводу:

Асинхронна помилка виловлена: Зазнала краху

Поглибленний огляд

Обробка помилок була одним з кутових каменів програмування з самого початку. У TypeScript, який базується на JavaScript, обробка помилок стала більш надійною з введенням async/await у ECMAScript 2017. До цього ми часто покладалися на функції зворотного виклику та обіцянки для обробки помилок в асинхронному коді.

Альтернативою try/catch у TypeScript є використання меж обробки помилок, які надають фреймворки на кшталт React. Для обробки помилок на сервері можна використовувати проміжне програмне забезпечення на платформах на кшталт Express.js для централізації управління помилками.

З точки зору реалізації, TypeScript не має власного механізму обробки помилок, а покладається на механізм JavaScript. Класи помилок користувача можуть розширювати клас Error, щоб надати більш детальну інформацію про помилку.

Дивіться також