Intermediate LevelNode JS
How do you differentiate between operational runtime errors and fatal programmer bugs in Node.js architectures?
❓ Interview Prompt: Operational errors (file not found, database timeout, invalid input) are expected and handled via try/catch or retries. Programmer errors (syntax errors, null reference, type mismatch) indicate corrupted state requiring immediate process restart.
Node.js error handling differentiates two error categories:
1
Operational Errors: Expected runtime failures (e.g. database timeout, network drop, 404 file not found). Handle via 'try/catch', retries, or graceful user error responses.
2
Programmer Errors: Bugs in application code (e.g. 'TypeError: Cannot read property of undefined'). Process memory state is corrupted; log the stack trace and restart the process!
Code Implementation Example
javascript
class AppError extends Error {
constructor(message, statusCode, isOperational = true) {
super(message);
this.statusCode = statusCode;
this.isOperational = isOperational; // Flag for operational error
}
}
// Usage inside middleware:
if (!err.isOperational) {
console.error('Fatal Programmer Bug! Restarting process...', err);
process.exit(1);
}💡Distinguishing operational errors from fatal programmer bugs.
🎯 Interview Key Takeaway
Catch operational errors cleanly; restart Node.js processes immediately upon encountering unhandled programmer bugs.
#Error Handling#AppError#Architecture#Intermediate
Back to all Node JS Questions→