> Почему ошибку в промисе лучше обрабатывать через catch, а не через console.error? (JavaScript)

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

Компании: Альфа-банк

Стек: JavaScript

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

Использование catch для обработки ошибок в промисах предпочтительнее, чем console.error, по нескольким причинам. Во-первых, catch перехватывает ошибку и предотвращает её всплытие в глобальный обработчик unhandledrejection, что может вызвать падение приложения или неожиданное поведение. Во-вторых, catch позволяет продолжить цепочку промисов, вернув значение (например, запасные данные) или корректно обработав ошибку, в то время как console.error просто выводит сообщение, но не останавливает распространение ошибки. В-третьих, catch даёт возможность централизованно управлять ошибками (например, логировать их в сервис мониторинга), а не только выводить в консоль. Пример:

JAVASCRIPT
// Плохо: ошибка не обработана, может упасть в unhandledrejection
fetch('/data')
.then(res => res.json())
.then(data => console.log(data))
.then(() => console.error('Ошибка не перехвачена')); // это не catch
// Хорошо: catch перехватывает и обрабатывает
fetch('/data')
.then(res => res.json())
.then(data => console.log(data))
.catch(err => {
console.error('Ошибка:', err); // логируем
return { fallback: true }; // продолжаем цепочку
});

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

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