Error Handling
Express, mein, error-handling, MIDDLEWARE, ke, FOUR, ARGUMENTS, HOTE, HAIN — (err, req, res, next) — Express, ISE, AUTOMATICALLY, EK, NORMAL, MIDDLEWARE, se, ALAG, PEHCHANТA hai, ARGUMENT, COUNT, se.
ASYNC, ROUTE, HANDLERS, mein, ERRORS, ko, next(err) SE, PASS, karna, ZAROORI, hai (YA, try-catch, mein, WRAP, karके) — WARNA, UNHANDLED, PROMISE, REJECTION, ho, sakti hai aur, Express, ISE, AUTOMATICALLY, CATCH, NAHI, karta (Express 4 mein).
app.get("/users/:id", async (req, res, next) => {
try {
const user = await db.findUser(req.params.id);
if (!user) {
const err = new Error("User not found");
err.status = 404;
throw err;
}
res.json(user);
} catch (err) {
next(err); // centralized error handler ko, PASS
}
});
// Centralized error handler — HAMESHA, sabse, LAST mein:
app.use((err, req, res, next) => {
res.status(err.status || 500).json({ error: err.message });
});- Error middleware = 4 arguments (err, req, res, next) — Express, ISE, AUTO, DETECT, karta hai
- Async errors, next(err), se, PASS, karne, ZAROORI, hain (Express 4 mein)
- Centralized error handler, HAMESHA, middleware, stack, ke, LAST, mein, hota hai
Custom, Error, CLASSES, banaне, se, DIFFERENT, TYPES, ke, ERRORS, ko, DIFFERENTIATE, karna, EASY, ho, jaata hai (jaise, ValidationError, NotFoundError) — CENTRALIZED, ERROR, HANDLER, mein, instanceof, CHECKS, se, ALAG-ALAG, RESPONSE, DIYE, ja, sakte, HAIN.
class NotFoundError extends Error {
constructor(message) {
super(message);
this.status = 404;
}
}
// throw new NotFoundError("User not found");AGAR, KOI, BHI, ROUTE, MATCH, NAHI, HOTA, EK, GENERIC, 404, HANDLER, DEFINE, kiya, ja, sakta hai — YE, SAARE, ROUTES, ke, BAAD, LEKIN, ERROR, HANDLER, se, PEHLE, DEFINE, HOTA, hai.