> Почему ошибку в промисе лучше обрабатывать через catch, а не через console.error? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Альфа-банк
Стек: JavaScript
> Пример ответа
Использование catch для обработки ошибок в промисах предпочтительнее, чем console.error, по нескольким причинам. Во-первых, catch перехватывает ошибку и предотвращает её всплытие в глобальный обработчик unhandledrejection, что может вызвать падение приложения или неожиданное поведение. Во-вторых, catch позволяет продолжить цепочку промисов, вернув значение (например, запасные данные) или корректно обработав ошибку, в то время как console.error просто выводит сообщение, но не останавливает распространение ошибки. В-третьих, catch даёт возможность централизованно управлять ошибками (например, логировать их в сервис мониторинга), а не только выводить в консоль. Пример:
JAVASCRIPT// Плохо: ошибка не обработана, может упасть в unhandledrejectionfetch('/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 }; // продолжаем цепочку});
> Похожие задачи по frontend
Как модифицировать и отображать данные во frontend?
Что происходит после выполнения микротасков в JavaScript и как обрабатываются макротаски и синхронный код?
Можно ли выполнять более приоритетные промисы кроме setTimeout и что это дает пользователю
Выполняются ли скрипты в порядке перечисления в документе и работает ли это с async
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью