Bird
Raised Fist0
Expressframework~10 mins

Centralized error handler in Express - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define an error-handling middleware in Express.

Express
app.use(function(err, req, res, [1]) {
  res.status(500).send('Something broke!');
});
Drag options to blanks, or click blank then click option'
Arequest
Bres
Cerror
Dnext
Attempts:
3 left
💡 Hint
Common Mistakes
Using only three parameters instead of four.
Naming the fourth parameter incorrectly.
2fill in blank
medium

Complete the code to send a JSON error response with status code 400.

Express
app.use(function(err, req, res, next) {
  res.status([1]).json({ error: err.message });
});
Drag options to blanks, or click blank then click option'
A400
B404
C200
D500
Attempts:
3 left
💡 Hint
Common Mistakes
Using status 200 which means success.
Using status 404 which means not found.
3fill in blank
hard

Fix the error in the middleware to correctly pass the error to the next handler.

Express
app.use(function(err, req, res, next) {
  if (!err) {
    [1]();
  } else {
    res.status(500).send(err.message);
  }
});
Drag options to blanks, or click blank then click option'
Areq
Bres
Cnext
Derr
Attempts:
3 left
💡 Hint
Common Mistakes
Calling res() which is not a function.
Calling err() which is not a function.
4fill in blank
hard

Fill both blanks to create a middleware that logs the error message and then passes the error along.

Express
app.use(function(err, req, res, next) {
  console.[1](err.message);
  [2](err);
});
Drag options to blanks, or click blank then click option'
Alog
Bnext
Cerror
Dwarn
Attempts:
3 left
💡 Hint
Common Mistakes
Using console.error instead of console.log (both work but only one is correct here).
Calling next() without the error argument.
5fill in blank
hard

Fill all three blanks to create a centralized error handler that sets status, logs error, and sends JSON response.

Express
app.use(function(err, req, res, next) {
  res.status([1]);
  console.[2](err.stack);
  res.json({ error: [3] });
});
Drag options to blanks, or click blank then click option'
A500
Berror
Cerr.message
Dwarn
Attempts:
3 left
💡 Hint
Common Mistakes
Using status 200 instead of 500.
Logging with console.log instead of console.error.
Sending the whole error object instead of just the message.

Practice

(1/5)
1. What is the main purpose of a centralized error handler in an Express app?
easy
A. To serve static files efficiently
B. To speed up the server response time
C. To catch and handle all errors in one place
D. To manage user sessions

Solution

  1. Step 1: Understand error handling in Express

    Express allows middleware to catch errors and handle them centrally.
  2. Step 2: Identify the role of centralized error handler

    It collects all errors from routes and middleware to respond consistently.
  3. Final Answer:

    To catch and handle all errors in one place -> Option C
  4. Quick Check:

    Centralized error handler = catch all errors [OK]
Hint: Centralized error handler catches errors globally, not locally [OK]
Common Mistakes:
  • Thinking it improves server speed
  • Confusing with static file serving
  • Mixing with session management
2. Which of the following is the correct way to define a centralized error handler middleware in Express?
easy
A. app.use((req, res) => { res.status(500).send('Error'); });
B. app.use((err, req, res, next) => { res.status(500).send(err.message); });
C. app.get('/error', (err, req, res) => { res.send('Error'); });
D. app.use((req, res, next) => { res.send('Error'); });

Solution

  1. Step 1: Recall Express error handler signature

    Error handlers have four parameters: (err, req, res, next).
  2. Step 2: Match the correct middleware signature

    app.use((err, req, res, next) => { res.status(500).send(err.message); }); uses all four parameters correctly and sends error message.
  3. Final Answer:

    app.use((err, req, res, next) => { res.status(500).send(err.message); }); -> Option B
  4. Quick Check:

    Error handler middleware needs 4 params [OK]
Hint: Error handler middleware always has 4 parameters (err, req, res, next) [OK]
Common Mistakes:
  • Using only 3 parameters in error handler
  • Defining error handler as route handler
  • Missing the 'err' parameter
3. Given this Express code snippet, what will be the response if an error occurs in the route?
app.get('/test', (req, res, next) => {
  next(new Error('Oops!'));
});

app.use((err, req, res, next) => {
  res.status(500).send('Error caught: ' + err.message);
});
medium
A. Status 500 with body 'Error caught: Oops!'
B. Status 200 with body 'Oops!'
C. Status 404 with body 'Not Found'
D. No response, server crashes

Solution

  1. Step 1: Understand error propagation in route

    The route calls next() with an Error object, triggering error middleware.
  2. Step 2: Check error handler response

    The error handler sends status 500 and message including error text.
  3. Final Answer:

    Status 500 with body 'Error caught: Oops!' -> Option A
  4. Quick Check:

    Error passed to handler = 500 response with message [OK]
Hint: next(error) triggers centralized error handler with status 500 [OK]
Common Mistakes:
  • Expecting status 200 instead of 500
  • Thinking error handler is skipped
  • Assuming server crashes on error
4. Identify the error in this Express app setup for centralized error handling:
app.use((req, res, next) => {
  throw new Error('Fail');
});

app.use((req, res, next) => {
  res.status(500).send('Error occurred');
});
medium
A. Error handler middleware missing 'err' parameter
B. Throwing error inside middleware is not allowed
C. Error handler middleware should be placed before routes
D. Middleware order is correct, no error

Solution

  1. Step 1: Check error handler signature

    Error handlers must have 4 parameters: (err, req, res, next).
  2. Step 2: Analyze given error handler

    The second middleware has only (req, res, next), so it won't catch errors.
  3. Final Answer:

    Error handler middleware missing 'err' parameter -> Option A
  4. Quick Check:

    Error handler needs 4 params to catch errors [OK]
Hint: Error handler must have 4 parameters to work [OK]
Common Mistakes:
  • Forgetting the 'err' parameter in error handler
  • Placing error handler before routes
  • Thinking throwing error is disallowed
5. You want to create a centralized error handler that logs errors and sends a JSON response with status code and message. Which code snippet correctly implements this?
hard
A. app.use((req, res, next) => { console.error('Error'); res.json({ error: 'Unknown' }); });
B. app.use((err, req, res, next) => { res.send('Error occurred'); });
C. app.use((err, req, res) => { res.status(500).send('Error'); });
D. app.use((err, req, res, next) => { console.error(err); res.status(err.status || 500).json({ error: err.message }); });

Solution

  1. Step 1: Confirm error handler signature and logging

    app.use((err, req, res, next) => { console.error(err); res.status(err.status || 500).json({ error: err.message }); }); uses (err, req, res, next) and logs error with console.error.
  2. Step 2: Check response format and status code

    app.use((err, req, res, next) => { console.error(err); res.status(err.status || 500).json({ error: err.message }); }); sends JSON with error message and status code from error or 500.
  3. Final Answer:

    app.use((err, req, res, next) => { console.error(err); res.status(err.status || 500).json({ error: err.message }); }); -> Option D
  4. Quick Check:

    Proper error handler logs and sends JSON with status [OK]
Hint: Error handler needs 4 params, logs error, sends JSON with status [OK]
Common Mistakes:
  • Missing 'next' parameter in error handler
  • Not logging the error
  • Sending plain text instead of JSON
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