Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: error handling, API, catch, response parsing, normalization

Как обрабатывать различные форматы ошибок от API (объект с полем error vs объект с полем message) в одном блоке catch?

Проверяет умение унифицировать обработку разных форматов ошибок от API в одном блоке catch.

Короткий ответ

Чтобы обрабатывать разные форматы ошибок в одном catch, нужно нормализовать ответ сервера. Сначала проверяем, есть ли поле error, затем message, и приводим к единому виду. Это позволяет не дублировать логику и делает код устойчивым к изменениям API.

Длинный ответ

Проблема разных форматов ошибок

При работе с API сервер может возвращать ошибки в разных форматах: { error: 'текст' } или { message: 'текст' }. Если обрабатывать их по отдельности, код становится громоздким и хрупким. Решение — нормализовать ответ в единый формат внутри одного catch.

Пример нормализации

fetch('/api/data')
  .then(response => {
    if (!response.ok) {
      return response.json().then(err => {
        // Нормализуем ошибку
        const normalizedError = {
          message: err.error || err.message || 'Неизвестная ошибка',
          status: response.status
        };
        throw normalizedError;
      });
    }
    return response.json();
  })
  .catch(error => {
    // error.message всегда содержит текст
    console.error(error.message);
  });

Как это работает

  • В блоке catch мы получаем уже нормализованный объект с полем message.
  • Независимо от того, пришло поле error или message, мы приводим к единому виду.
  • Можно добавить проверку на тип данных: если ответ не JSON, использовать текст по умолчанию.

Вывод

Нормализация ошибок в одном месте упрощает поддержку кода и делает его устойчивым к изменениям API. Этот подход стоит применять в любом проекте, где есть внешние запросы.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • Node.js

    Node.js

Ключевые слова

#error handling

#API

#catch

#response parsing

#normalization

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию