Performance: Error events and handling
This concept affects server responsiveness and resource usage during error handling in Node.js applications.
Jump into concepts and practice - no test required
const fs = require('fs'); process.on('uncaughtException', (err) => { // asynchronous logging fs.appendFile('error.log', err.message + '\n', (e) => { if (e) console.error('Logging failed'); }); });
process.on('uncaughtException', (err) => { // heavy synchronous logging for (let i = 0; i < 1000000; i++) { console.log(err.message); } });
| Pattern | Event Loop Blocking | CPU Usage | Memory Impact | Verdict |
|---|---|---|---|---|
| Synchronous heavy error logging | Blocks event loop for 100+ ms | High CPU during error | Moderate | [X] Bad |
| Asynchronous error logging | No blocking, event loop free | Low CPU | Low | [OK] Good |
error events in Node.js event emitters?error event on a Node.js stream named myStream?on method to listen to events on event emitters like streams.myStream.on('error', callback) where callback receives the error object.const EventEmitter = require('events');
const emitter = new EventEmitter();
emitter.on('error', (err) => { console.log('Error caught:', err.message); });
emitter.emit('error', new Error('Oops!'));
What will be printed to the console?const fs = require('fs');
const stream = fs.createReadStream('file.txt');
stream.emit('error', new Error('File not found'));emit('error') manually on a stream is not standard practice and can cause unexpected behavior.