Bird
Raised Fist0
Vueframework~5 mins

Error boundaries with onErrorCaptured in Vue - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of onErrorCaptured in Vue?

onErrorCaptured is a Vue Composition API hook that catches errors from child components during rendering, lifecycle hooks, or watchers. It acts like an error boundary to prevent the whole app from crashing.

Click to reveal answer
beginner
How do you use onErrorCaptured in a Vue component?

Inside the setup() function, call onErrorCaptured((error, instance, info) => { ... }). Return true to stop the error from propagating further, or false or nothing to continue passing it up.

Click to reveal answer
intermediate
What arguments does the onErrorCaptured callback receive?
  • error: The actual error object thrown.
  • instance: The Vue component instance where the error happened.
  • info: A string describing the lifecycle hook or event during which the error occurred.
Click to reveal answer
intermediate
What happens if onErrorCaptured returns true?

Returning true tells Vue that the error was handled and stops the error from propagating to parent components or the global error handler.

Click to reveal answer
advanced
Can onErrorCaptured catch errors from asynchronous code like setTimeout?

No, onErrorCaptured only catches errors during rendering and lifecycle hooks. Errors in asynchronous callbacks like setTimeout need to be handled separately.

Click to reveal answer
Where do you place onErrorCaptured in a Vue component?
AInside the <code>methods</code> object
BInside the <code>template</code> section
CInside the <code>data()</code> function
DInside the <code>setup()</code> function
What does returning true from onErrorCaptured do?
ARestarts the component
BStops error propagation to parent components
CLogs the error to the console
DIgnores the error silently
Which of these errors can onErrorCaptured catch?
AErrors during component rendering
BErrors inside <code>setTimeout</code> callbacks
CNetwork request errors
DSyntax errors in JavaScript files
What arguments does the onErrorCaptured callback receive?
Acomponent, props, state
Bevent, data, context
Cerror, instance, info
Derror, message, stack
If onErrorCaptured returns false or nothing, what happens?
AError propagates to parent components
BError is ignored
CComponent reloads automatically
DError is logged and stopped
Explain how onErrorCaptured works as an error boundary in Vue components.
Think about how Vue lets you catch errors in child components to avoid app crashes.
You got /4 concepts.
    Describe a scenario where you would use onErrorCaptured and how you handle the error.
    Imagine a child component throws an error and you want the parent to catch it and show a message.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the onErrorCaptured hook in Vue?
      easy
      A. To prevent any rendering of child components
      B. To automatically reload the page when an error occurs
      C. To log errors only in the browser console without affecting UI
      D. To catch errors from child components and handle them gracefully

      Solution

      1. Step 1: Understand the role of error boundaries

        Error boundaries catch errors in child components to prevent the whole app from crashing.
      2. Step 2: Identify what onErrorCaptured does

        This hook lets you catch those errors and handle them, for example by showing fallback UI.
      3. Final Answer:

        To catch errors from child components and handle them gracefully -> Option D
      4. Quick Check:

        Catches child errors gracefully [OK]
      Hint: Remember: onErrorCaptured catches child errors for graceful handling [OK]
      Common Mistakes:
      • Thinking it reloads the page automatically
      • Believing it blocks all child rendering
      • Assuming it only logs errors without UI impact
      2. Which of the following is the correct way to use onErrorCaptured in a Vue 3 Composition API setup function?
      easy
      A. onErrorCaptured.handleError(error => { /* handle error */ })
      B. onErrorCaptured((error, instance, info) => { /* handle error */ })
      C. setup() { onErrorCaptured: function(error) { /* handle error */ } }
      D. onErrorCaptured = (error) => { /* handle error */ }

      Solution

      1. Step 1: Recall the correct syntax for hooks in Composition API

        Hooks like onErrorCaptured are called as functions with a callback.
      2. Step 2: Match the syntax with options

        onErrorCaptured((error, instance, info) => { /* handle error */ }) correctly shows calling onErrorCaptured with a callback function receiving error details.
      3. Final Answer:

        onErrorCaptured((error, instance, info) => { /* handle error */ }) -> Option B
      4. Quick Check:

        Hook usage = function call with callback [OK]
      Hint: Hooks are functions called with callbacks in setup() [OK]
      Common Mistakes:
      • Assigning onErrorCaptured instead of calling it
      • Using object syntax inside setup incorrectly
      • Calling non-existent methods on onErrorCaptured
      3. Given this Vue component snippet, what will be the console output when ChildComponent throws an error?
      setup() {
        onErrorCaptured((err) => {
          console.log('Error caught:', err.message)
          return false
        })
      }
      medium
      A. Error caught: [error message]
      B. No output, error is ignored
      C. Error caught: [error message] and error propagates further
      D. Runtime error: onErrorCaptured not defined

      Solution

      1. Step 1: Understand onErrorCaptured behavior with return false

        Returning false stops error propagation and prevents further bubbling.
      2. Step 2: Analyze console.log call

        The callback logs the error message, so console shows 'Error caught:' plus the error message.
      3. Final Answer:

        Error caught: [error message] -> Option A
      4. Quick Check:

        Return false stops propagation, logs error [OK]
      Hint: Return false in onErrorCaptured stops error bubbling [OK]
      Common Mistakes:
      • Assuming error propagates despite return false
      • Expecting no console output
      • Confusing syntax causing runtime errors
      4. Identify the error in this Vue 3 setup function using onErrorCaptured:
      setup() {
        onErrorCaptured = (error) => {
          console.error(error)
          return false
        }
      }
      medium
      A. Incorrect assignment instead of calling onErrorCaptured as a function
      B. Missing import of onErrorCaptured from Vue
      C. Returning false is not allowed in onErrorCaptured
      D. console.error cannot be used inside setup

      Solution

      1. Step 1: Check how onErrorCaptured is used

        It should be called as a function with a callback, not assigned to a function.
      2. Step 2: Identify the incorrect syntax

        The code assigns a function to onErrorCaptured instead of calling it, causing an error.
      3. Final Answer:

        Incorrect assignment instead of calling onErrorCaptured as a function -> Option A
      4. Quick Check:

        Hooks are called, not assigned [OK]
      Hint: Use onErrorCaptured(callback), not assignment [OK]
      Common Mistakes:
      • Assigning hook instead of calling it
      • Forgetting to import onErrorCaptured
      • Misunderstanding return false usage
      5. You want to create an error boundary component in Vue 3 that catches errors from its children and shows a fallback message. Which approach correctly uses onErrorCaptured to stop error propagation and display fallback UI?
      hard
      A. Wrap children in try-catch inside template to catch errors
      B. Use onErrorCaptured but do not return anything, so errors propagate
      C. Use onErrorCaptured to set a reactive error state and return false to stop propagation
      D. Use onErrorCaptured and always return true to propagate errors

      Solution

      1. Step 1: Understand error boundary behavior

        An error boundary catches errors and shows fallback UI by tracking error state.
      2. Step 2: Use onErrorCaptured to update error state and stop propagation

        Returning false in onErrorCaptured stops error bubbling, allowing fallback UI to show.
      3. Final Answer:

        Use onErrorCaptured to set a reactive error state and return false to stop propagation -> Option C
      4. Quick Check:

        Set error state + return false = error boundary [OK]
      Hint: Return false in onErrorCaptured to stop error bubbling [OK]
      Common Mistakes:
      • Not returning false, so errors keep propagating
      • Trying to catch errors in template with try-catch
      • Returning true which continues error propagation
      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