Bird
Raised Fist0
Reactframework~5 mins

Error boundaries concept in React - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an error boundary in React?
An error boundary is a React component that catches JavaScript errors anywhere in its child component tree, logs those errors, and displays a fallback UI instead of the crashed component tree.
Click to reveal answer
intermediate
Which lifecycle method is used in class components to catch errors for error boundaries?
The lifecycle method static getDerivedStateFromError(error) is used to update state when an error is caught, and componentDidCatch(error, info) is used to log the error or perform side effects.
Click to reveal answer
intermediate
Can functional components be error boundaries in React 19+?
No, currently only class components can be error boundaries because error boundary methods rely on lifecycle methods not available in functional components.
Click to reveal answer
beginner
What happens to the UI when an error boundary catches an error?
The error boundary renders a fallback UI, which is a safe and user-friendly message or component, instead of the broken component tree that caused the error.
Click to reveal answer
beginner
Why should you use error boundaries in a React app?
Error boundaries prevent the entire React app from crashing due to errors in parts of the UI. They improve user experience by showing fallback UI and help developers catch and log errors.
Click to reveal answer
Which React component type can be an error boundary?
AStateless components
BFunctional components with hooks
CPure components
DClass components
What method updates state when an error is caught in an error boundary?
AgetDerivedStateFromError
BcomponentDidCatch
CrenderError
DcomponentWillCatch
What does an error boundary do when it catches an error?
AReloads the page
BLogs the error and shows fallback UI
CIgnores the error
DRestarts the app
Can error boundaries catch errors in event handlers?
ANo, error boundaries do not catch errors in event handlers
BOnly in class components
COnly if wrapped in try-catch
DYes, always
What is a good fallback UI for an error boundary?
AA blank screen
BThe error stack trace
CA friendly message explaining something went wrong
DReload button only
Explain how error boundaries improve user experience in React apps.
Think about what happens when a part of the UI breaks and how error boundaries help.
You got /4 concepts.
    Describe the lifecycle methods involved in creating an error boundary class component.
    Focus on methods that catch errors and update UI.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of an Error Boundary in React?
      easy
      A. To catch JavaScript errors in child components and display a fallback UI
      B. To manage state across multiple components
      C. To optimize rendering performance
      D. To handle user input validation

      Solution

      1. Step 1: Understand Error Boundary role

        Error boundaries catch errors in the components below them in the tree to prevent the whole app from crashing.
      2. Step 2: Identify the correct purpose

        They show a fallback UI when an error happens, improving user experience.
      3. Final Answer:

        To catch JavaScript errors in child components and display a fallback UI -> Option A
      4. Quick Check:

        Error boundaries catch errors = C [OK]
      Hint: Error boundaries catch errors and show fallback UI [OK]
      Common Mistakes:
      • Confusing error boundaries with state management
      • Thinking error boundaries optimize rendering
      • Assuming error boundaries handle input validation
      2. Which of the following is the correct way to define an Error Boundary component in React?
      easy
      A. A class component implementing componentDidCatch and getDerivedStateFromError
      B. A functional component using useErrorBoundary hook
      C. A class component implementing componentDidMount and shouldComponentUpdate
      D. A functional component with useEffect to catch errors

      Solution

      1. Step 1: Recall Error Boundary requirements

        Error boundaries must be class components that implement componentDidCatch and getDerivedStateFromError lifecycle methods.
      2. Step 2: Identify correct lifecycle methods

        Only A class component implementing componentDidCatch and getDerivedStateFromError lists these two required methods correctly.
      3. Final Answer:

        A class component implementing componentDidCatch and getDerivedStateFromError -> Option A
      4. Quick Check:

        Class + componentDidCatch + getDerivedStateFromError = A [OK]
      Hint: Error boundaries are class components with special lifecycle methods [OK]
      Common Mistakes:
      • Thinking functional components can be error boundaries
      • Confusing lifecycle methods needed for error boundaries
      • Using hooks that don't exist for error boundaries
      3. Given this Error Boundary class component, what will be rendered if ChildComponent throws an error?
      class ErrorBoundary extends React.Component {
        constructor(props) {
          super(props);
          this.state = { hasError: false };
        }
        static getDerivedStateFromError(error) {
          return { hasError: true };
        }
        componentDidCatch(error, info) {
          console.log('Error logged:', error);
        }
        render() {
          if (this.state.hasError) {
            return <h1>Something went wrong.</h1>;
          }
          return this.props.children;
        }
      }
      
      // Usage:
      // <ErrorBoundary><ChildComponent /></ErrorBoundary>
      medium
      A. The original ChildComponent UI is shown
      B. The app crashes with an uncaught error
      C. Nothing is rendered (blank screen)
      D. An error message Something went wrong. is shown

      Solution

      1. Step 1: Understand error handling in ErrorBoundary

        If ChildComponent throws an error, getDerivedStateFromError sets hasError to true.
      2. Step 2: Check render output when error occurs

        When hasError is true, the component renders the fallback UI: <h1>Something went wrong.</h1>.
      3. Final Answer:

        An error message Something went wrong. is shown -> Option D
      4. Quick Check:

        Error caught shows fallback UI = D [OK]
      Hint: Error sets state to show fallback UI, not original child [OK]
      Common Mistakes:
      • Expecting child UI to show despite error
      • Thinking error causes app crash
      • Assuming blank screen on error
      4. What is wrong with this Error Boundary component code?
      class MyErrorBoundary extends React.Component {
        constructor(props) {
          super(props);
          this.state = { error: null };
        }
        componentDidCatch(error, info) {
          this.setState({ error });
        }
        render() {
          if (this.state.error) {
            return <h2>Error occurred</h2>;
          }
          return this.props.children;
        }
      }
      medium
      A. componentDidCatch should not call setState
      B. It lacks the static method getDerivedStateFromError to update state on error
      C. The constructor should not initialize state
      D. render method must not return children

      Solution

      1. Step 1: Check error state update method

        Error boundaries must implement getDerivedStateFromError to update state when an error happens.
      2. Step 2: Identify missing static method

        This code only uses componentDidCatch to set state, which is incorrect because componentDidCatch is for side effects, not state updates.
      3. Final Answer:

        It lacks the static method getDerivedStateFromError to update state on error -> Option B
      4. Quick Check:

        Missing getDerivedStateFromError static method = A [OK]
      Hint: State update on error must be in getDerivedStateFromError [OK]
      Common Mistakes:
      • Updating state inside componentDidCatch
      • Forgetting static getDerivedStateFromError
      • Misusing lifecycle methods for error handling
      5. You want to create an Error Boundary that logs errors to an external service and shows a fallback UI. Which of the following is the best approach?
      class LoggingErrorBoundary extends React.Component {
        constructor(props) {
          super(props);
          this.state = { hasError: false };
        }
        static getDerivedStateFromError(error) {
          return { hasError: true };
        }
        componentDidCatch(error, info) {
          // ???
        }
        render() {
          if (this.state.hasError) {
            return <div><h1>Oops!</h1><p>Try refreshing.</p></div>;
          }
          return this.props.children;
        }
      }
      What should replace // ??? to correctly log errors without causing issues?
      hard
      A. Call an async logging function directly without try/catch
      B. Update state again inside componentDidCatch to trigger re-render
      C. Use a try/catch inside componentDidCatch to call the logging service safely
      D. Ignore logging and only show fallback UI

      Solution

      1. Step 1: Understand componentDidCatch role

        componentDidCatch is for side effects like logging errors but should handle errors safely to avoid crashing.
      2. Step 2: Choose safe logging approach

        Using try/catch inside componentDidCatch when calling async logging prevents unhandled errors from breaking the app.
      3. Final Answer:

        Use a try/catch inside componentDidCatch to call the logging service safely -> Option C
      4. Quick Check:

        Safe error logging with try/catch in componentDidCatch = B [OK]
      Hint: Wrap logging calls in try/catch inside componentDidCatch [OK]
      Common Mistakes:
      • Calling async logging without error handling
      • Updating state inside componentDidCatch causing loops
      • Skipping logging and losing error info
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard