Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: React, Error Boundary, error handling, componentDidCatch, getDerivedStateFromError

Как устроена обработка ошибок в React?

Вопрос проверяет понимание механизмов обработки ошибок в React, включая Error Boundaries и обработку ошибок в асинхронном коде.

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

В React для обработки ошибок используются Error Boundaries — компоненты, которые ловят ошибки в дочернем дереве и отображают запасной UI. Error Boundary создается с помощью методов componentDidCatch или getDerivedStateFromError. Однако Error Boundaries не ловят ошибки в асинхронном коде, обработчиках событий и серверном рендеринге — для них нужны отдельные try/catch.

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

Что такое Error Boundary?

Error Boundary — это React-компонент, который перехватывает ошибки JavaScript в любом месте дочернего дерева компонентов, логирует их и отображает запасной интерфейс вместо упавшего компонента. Это аналог try/catch для React-дерева.

Как создать Error Boundary?

Error Boundary создается с помощью методов жизненного цикла static getDerivedStateFromError() и componentDidCatch(). Первый обновляет состояние для отображения fallback UI, второй — для логирования ошибки.

class ErrorBoundary extends React.Component {
  constructor(props) {
    super(props);
    this.state = { hasError: false };
  }

  static getDerivedStateFromError(error) {
    return { hasError: true };
  }

  componentDidCatch(error, errorInfo) {
    console.error('Error caught:', error, errorInfo);
  }

  render() {
    if (this.state.hasError) {
      return <h1>Something went wrong.</h1>;
    }
    return this.props.children;
  }
}

Где Error Boundaries не работают?

  • В обработчиках событий (нужно использовать try/catch внутри)
  • В асинхронном коде (setTimeout, fetch)
  • При серверном рендеринге
  • В самом Error Boundary (ошибка в нем не ловится)

Современный подход

С React 16+ Error Boundaries — стандартный способ. Для функциональных компонентов нет прямого аналога, но можно использовать библиотеки типа react-error-boundary.

Вывод: Error Boundaries обязательны для production-приложений, чтобы предотвратить полное падение UI и улучшить пользовательский опыт. Для асинхронных операций и событий используйте try/catch или библиотеки-обертки.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

  • React

    React

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

#React

#Error Boundary

#error handling

#componentDidCatch

#getDerivedStateFromError

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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