Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: error handling, API, HTTP status codes, retry, try catch

Как обрабатывать ошибки при работе с API?

Вопрос проверяет понимание стратегий обработки ошибок при взаимодействии с внешними API, включая HTTP-статусы, исключения и повторные попытки.

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

Обработка ошибок API включает проверку HTTP-статусов, использование try-catch для исключений и реализацию повторных попыток при временных сбоях. Важно логировать ошибки и показывать пользователю понятные сообщения. Для асинхронных запросов используйте async/await с обработкой reject.

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

Основы обработки ошибок API

При работе с API ошибки неизбежны: сервер может быть недоступен, запрос может быть некорректным или данные могут отсутствовать. Правильная обработка ошибок делает приложение устойчивым и улучшает пользовательский опыт.

Проверка HTTP-статусов

Каждый ответ API содержит HTTP-статус, который указывает на успех или неудачу. Например, 200 OK — успех, 404 Not Found — ресурс не найден, 500 Internal Server Error — ошибка сервера. В коде нужно проверять статус и реагировать соответственно.

fetch('/api/data')
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.json();
  })
  .catch(error => console.error('Fetch error:', error));

Использование try-catch с async/await

Современный подход — использовать async/await с блоком try-catch для обработки ошибок асинхронных запросов. Это делает код более читаемым.

async function getData() {
  try {
    const response = await fetch('/api/data');
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    const data = await response.json();
    return data;
  } catch (error) {
    console.error('Failed to fetch data:', error);
    throw error; // пробрасываем дальше
  }
}

Повторные попытки (retry)

Временные ошибки (например, 503 Service Unavailable) можно обработать с помощью повторных попыток с задержкой. Это повышает надежность.

async function fetchWithRetry(url, retries = 3) {
  for (let i = 0; i < retries; i++) {
    try {
      const response = await fetch(url);
      if (response.ok) return response.json();
      if (response.status >= 500 && i < retries - 1) {
        await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1)));
        continue;
      }
      throw new Error(`HTTP error! status: ${response.status}`);
    } catch (error) {
      if (i === retries - 1) throw error;
    }
  }
}

Вывод

Обработка ошибок API обязательна для создания надежных приложений. Используйте проверку статусов, try-catch и механизмы повторных попыток, чтобы минимизировать влияние сбоев и обеспечить корректную обратную связь пользователю.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • Node.js

    Node.js

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

#error handling

#API

#HTTP status codes

#retry

#try catch

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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