InterviewHubPRO
Section Overview
Q371

Question 371 of 445

Part 11: Legacy Architecture, Migration Patterns & Historical Internals (354 - 445)

83%
React & Modern Frontend (445 Qs)•Part 11: Legacy Architecture, Migration Patterns & Historical Internals (354 - 445)

What are error boundaries in React v16?

Note: Error boundaries were introduced in React 16 and remain valid in current React versions (18/19).

vbnet
_Error boundaries_ are components that catch JavaScript errors anywhere in their child component tree, log those errors, and display a fallback UI instead of the component tree that crashed.

A class component becomes an error boundary if it defines these lifecycle methods:
- `static getDerivedStateFromError(error)` - for rendering fallback UI
- `componentDidCatch(error, info)` - for logging error information
jsx
    class ErrorBoundary extends React.Component {
      constructor(props) {
        super(props);
        this.state = { hasError: false };
      }

      static getDerivedStateFromError(error) {
        // Update state so the next render will show the fallback UI
        return { hasError: true };
      }

      componentDidCatch(error, info) {
        // Log error to an error reporting service
        console.error('Error caught by boundary:', error, info);
        logErrorToMyService(error, info);
      }

      render() {
        if (this.state.hasError) {
          // Render custom fallback UI
          return <h1>Something went wrong.</h1>;
        }
        return this.props.children;
      }
    }
makefile
Usage:
jsx
    <ErrorBoundary>
      <MyWidget />
    </ErrorBoundary>
vbnet
**Note:** Error boundaries currently only work with class components. There is no hook equivalent yet, though `use()` hook in React 19 provides some error handling capabilities.