Bird
Raised Fist0
Node.jsframework~5 mins

Try-catch for synchronous errors in Node.js - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of a try-catch block in Node.js?
A try-catch block is used to handle errors that happen during the execution of synchronous code. It lets the program continue running instead of crashing.
Click to reveal answer
beginner
Which type of errors can be caught by a try-catch block?
Try-catch blocks catch synchronous errors only. They do not catch errors from asynchronous code like promises or callbacks.
Click to reveal answer
beginner
What happens if an error occurs inside the try block?
If an error happens inside the try block, the code stops running there and jumps to the catch block where you can handle the error safely.
Click to reveal answer
beginner
Show a simple example of try-catch in Node.js to handle a synchronous error.
try {
  const result = JSON.parse('invalid json');
} catch (error) {
  console.log('Caught an error:', error.message);
}
Click to reveal answer
intermediate
Why can't try-catch catch errors from asynchronous code like setTimeout or promises?
Because asynchronous code runs later, outside the current try-catch block's scope. Errors happen after the try-catch has finished, so they need special handling like .catch() or async/await with try-catch.
Click to reveal answer
What does a try-catch block catch in Node.js?
ANo errors
BSynchronous errors
CBoth synchronous and asynchronous errors
DAsynchronous errors
Where does the program jump when an error occurs inside a try block?
ATo the catch block
BTo the next line after try-catch
CTo the finally block
DIt crashes immediately
Which of these errors will NOT be caught by try-catch?
AError thrown by JSON.parse with invalid input
BError thrown inside the try block
CError thrown inside a setTimeout callback
DError thrown by a function called inside try
What is the correct syntax to catch errors in synchronous code?
Acatch { /* handle error */ } try { /* code */ }
Btry { /* code */ } then { /* handle error */ }
Ctry { /* code */ } finally { /* handle error */ }
Dtry { /* code */ } catch (error) { /* handle error */ }
If you want to handle errors from a promise, what should you use instead of try-catch?
A.catch() method or async/await with try-catch
BAnother try-catch block
CsetTimeout
Dconsole.log
Explain how try-catch works for synchronous errors in Node.js and why it cannot catch asynchronous errors.
Think about when the error happens in relation to the try-catch block.
You got /5 concepts.
    Write a simple Node.js code example using try-catch to handle a synchronous error from JSON parsing.
    Use JSON.parse with a wrong string inside try.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using try-catch in Node.js?
      easy
      A. To handle errors that happen during code execution without stopping the program
      B. To speed up the execution of asynchronous code
      C. To declare variables that are only used inside a block
      D. To format output text in the console

      Solution

      1. Step 1: Understand the role of try-catch

        Try-catch is used to catch errors that happen during the running of code so the program can continue safely.
      2. Step 2: Eliminate unrelated options

        Options about speeding asynchronous code, declaring variables, or formatting output do not relate to error handling.
      3. Final Answer:

        To handle errors that happen during code execution without stopping the program -> Option A
      4. Quick Check:

        Error handling = D [OK]
      Hint: Try-catch is for catching errors, not for speed or formatting [OK]
      Common Mistakes:
      • Thinking try-catch speeds up code
      • Confusing try-catch with variable declaration
      • Using try-catch to format output
      2. Which of the following is the correct syntax to catch synchronous errors in Node.js?
      easy
      A. catch { /* code */ } try (error) { /* handle error */ }
      B. try { /* code */ } catch (error) { /* handle error */ }
      C. try: { /* code */ } except (error) { /* handle error */ }
      D. try { /* code */ } catch error { /* handle error */ }

      Solution

      1. Step 1: Recall correct try-catch syntax

        The correct syntax uses try { ... } catch (error) { ... } with parentheses around the error variable.
      2. Step 2: Identify syntax errors in other options

        Options A, B, and D have wrong keywords or missing parentheses, which cause syntax errors.
      3. Final Answer:

        try { /* code */ } catch (error) { /* handle error */ } -> Option B
      4. Quick Check:

        Correct try-catch syntax = C [OK]
      Hint: Remember catch always needs parentheses around error [OK]
      Common Mistakes:
      • Omitting parentheses in catch
      • Using wrong keywords like except
      • Swapping try and catch blocks
      3. What will be the output of this code?
      try {
        throw new Error('Oops!');
        console.log('This will not run');
      } catch (e) {
        console.log('Caught:', e.message);
      }
      medium
      A. Caught: Oops!
      B. This will not run
      C. Error: Oops!
      D. No output

      Solution

      1. Step 1: Understand throw inside try block

        The throw statement immediately stops normal execution and jumps to catch.
      2. Step 2: Check catch block output

        The catch block logs 'Caught:' plus the error message 'Oops!'. The line after throw is skipped.
      3. Final Answer:

        Caught: Oops! -> Option A
      4. Quick Check:

        throw triggers catch output = B [OK]
      Hint: Throw stops try block; catch runs next [OK]
      Common Mistakes:
      • Expecting code after throw to run
      • Confusing error object with message
      • Thinking no output appears
      4. Identify the error in this code snippet:
      try {
        console.log('Start');
        throw 'Error happened';
      } catch e {
        console.log('Caught:', e);
      }
      medium
      A. Console.log syntax is wrong
      B. Throw cannot use string errors
      C. Missing parentheses around catch parameter
      D. Try block must not contain throw

      Solution

      1. Step 1: Check catch syntax

        The catch block must have parentheses around the error variable, like catch (e).
      2. Step 2: Verify other parts

        Throwing a string is allowed, console.log syntax is correct, and throw is valid inside try.
      3. Final Answer:

        Missing parentheses around catch parameter -> Option C
      4. Quick Check:

        Catch needs parentheses = A [OK]
      Hint: Catch always needs parentheses around error variable [OK]
      Common Mistakes:
      • Omitting parentheses in catch
      • Thinking throw can't use strings
      • Misreading console.log syntax
      5. You want to safely parse JSON input that might be invalid. Which code correctly uses try-catch to handle errors and return null if parsing fails?
      hard
      A. return JSON.parse(input) || null;
      B. if (JSON.parse(input)) { return JSON.parse(input); } else { return null; }
      C. try { JSON.parse(input); } catch { return null; }
      D. try { return JSON.parse(input); } catch (e) { return null; }

      Solution

      1. Step 1: Understand JSON.parse error behavior

        JSON.parse throws an error if input is invalid, so we must catch it to avoid crashing.
      2. Step 2: Check each option's error handling

        try { return JSON.parse(input); } catch (e) { return null; } uses try-catch correctly and returns null on error. if (JSON.parse(input)) { return JSON.parse(input); } else { return null; } does not catch errors, causing crash. try { JSON.parse(input); } catch { return null; } misses error parameter in catch and does not return parsed value. return JSON.parse(input) || null; does not catch errors and will crash on invalid input.
      3. Final Answer:

        try { return JSON.parse(input); } catch (e) { return null; } -> Option D
      4. Quick Check:

        Use try-catch to catch JSON errors = A [OK]
      Hint: Wrap JSON.parse in try-catch to handle invalid input safely [OK]
      Common Mistakes:
      • Not using try-catch around JSON.parse
      • Ignoring catch error parameter
      • Assuming JSON.parse returns null on error