Exception Handling in Node.js Last Updated : 11 Apr, 2023 Comments Improve Suggest changes Like Article Like Report Exception handling refers to the mechanism by which the exceptions occurring in a code while an application is running is handled. Node.js supports several mechanisms for propagating and handling errors. There are different methods that can be used for exception handling in Node.js: Exception handling in synchronous code: If an error occurs in a synchronous code, return the error. Example: javascript // Write Javascript code here // Define divider as a synchronous function let divideSync = function (x, y) { // if error condition? if (y === 0) { // "throw" the error safely by returning it return new Error("Can't divide by zero") } else { // no error occurred, continue on return x / y } } // Divide 9/3 let result = divideSync(9, 3) // did an error occur? if (result instanceof Error) { // handle the error safely console.log("9/3=err", result) } else { // no error occurred, continue on console.log("9/3=" + result) } // Divide 9/0 result = divideSync(9, 0) // did an error occur? if (result instanceof Error) { // handle the error safely console.log("9/0=err", result) } else { // no error occurred, continue on console.log("9/0=" + result) } Output: Exception handling in callback-based( asynchronous) code: In callback-based code, one of the arguments of the callback is erred. If an error happens err is the error, if an error doesn't happen then err is null. The err argument can be followed by any number of other arguments. Example: javascript // Write Javascript code here let divide = function (x, y, next) { // if error condition? if (y === 0) { // "throw" the error safely by calling the completion callback // with the first argument being the error next(new Error("Can't divide by zero")) } else { // no error occurred, continue on next(null, x / y) } } divide(9, 3, function (err, result) { // did an error occur? if (err) { // handle the error safely console.log("9/3=err", err) } else { // no error occurred, continue on console.log("9/3=" + result) } }) divide(9, 0, function (err, result) { // did an error occur? if (err) { // handle the error safely console.log("9/0=err", err) } else { // no error occurred, continue on console.log("9/0=" + result) } }) Output: Exception handling in eventful code: In an eventful code, the error may happen anywhere. So instead of throwing the error, fire the error event instead. Example: javascript // Write Javascript code here // Definite our Divider Event Emitter const events = require("events") let Divider = function () { events.EventEmitter.call(this) } require('util').inherits(Divider, events.EventEmitter) // Add the divide function Divider.prototype.divide = function (x, y) { // if error condition? if (y === 0) { // "throw" the error safely by emitting it var err = new Error("Can't divide by zero") this.emit("error", err) } else { // no error occurred, continue on this.emit("divided", x, y, x / y) } // Chain return this; } // Create our divider and listen for errors let divider = new Divider() divider.on('error', function (err) { // handle the error safely console.log(err) }) divider.on('divided', function (x, y, result) { console.log(x + "/" + y + "=" + result) }) // Divide divider.divide(9, 3).divide(9, 0) Output: Comment More infoAdvertise with us C chaitanyashah707 Follow Improve Article Tags : Web Technologies Node.js Explore Node.js Tutorial 4 min read Introduction & Installation NodeJS Introduction 4 min read Node.js Roadmap: A Complete Guide 6 min read How to Install Node.js on Linux 6 min read How to Install Node.js on Windows 5 min read How to Install NodeJS on MacOS 6 min read Node.js vs Browser - Top Differences That Every Developer Should Know 6 min read NodeJS REPL (READ, EVAL, PRINT, LOOP) 4 min read Explain V8 engine in Node.js 7 min read Node.js Web Application Architecture 3 min read NodeJS Event Loop 5 min read Node.js Modules , Buffer & StreamsNodeJS Modules 5 min read What are Buffers in Node.js ? 4 min read Node.js Streams 4 min read Node.js Asynchronous ProgrammingAsync Await in Node.js 3 min read Promises in NodeJS 8 min read How to Handle Errors in Node.js ? 4 min read Exception Handling in Node.js 3 min read Node.js NPMNodeJS NPM 6 min read Steps to Create and Publish NPM packages 7 min read Introduction to NPM scripts 2 min read Node.js package.json 4 min read What is package-lock.json ? 3 min read Node.js Deployments & CommunicationNode Debugging 2 min read How to Perform Testing in Node.js ? 2 min read Unit Testing of Node.js Application 5 min read NODE_ENV Variables and How to Use Them ? 2 min read Difference Between Development and Production in Node.js 3 min read Best Security Practices in Node.js 4 min read Deploying Node.js Applications 5 min read How to Build a Microservices Architecture with NodeJS 3 min read Node.js with WebAssembly 3 min read Resources & ToolsNode.js Web Server 6 min read Node Exercises, Practice Questions and Solutions 4 min read Node.js Projects 9 min read NodeJS Interview Questions and Answers 15+ min read Like