> Как отлавливать ошибки промисов в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: циан, Яндекс

Стек: JavaScript

> Пример ответа

Для отлова ошибок в промисах в JavaScript используется метод .catch(), который обрабатывает rejected-состояние промиса. Пример:

JAVASCRIPT
fetch('https://api.example.com/data')
.then(response => response.json())
.catch(error => console.error('Ошибка:', error));

Также можно использовать второй аргумент в .then():

JAVASCRIPT
promise.then(
result => console.log(result),
error => console.error('Ошибка:', error)
);

В современном коде предпочтительнее синтаксис async/await с try...catch:

JAVASCRIPT
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Ошибка при загрузке:', error);
}
}

Важно: если не отловить ошибку, она приведёт к необработанному отклонению промиса (unhandled rejection), что может вызвать падение приложения. Для глобального отлова используйте событие unhandledrejection:

JAVASCRIPT
window.addEventListener('unhandledrejection', event => {
console.error('Необработанная ошибка промиса:', event.reason);
});

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью