El manejo de excepciones se refiere al mecanismo mediante el cual se manejan las excepciones que ocurren en un código mientras se ejecuta una aplicación. Node.js admite varios mecanismos para propagar y manejar errores.
Estos son los diferentes métodos que se pueden usar para el manejo de excepciones en Node.js:
- Manejo de excepciones en código síncrono: si ocurre un error en un código síncrono, devuelve el error.
Ejemplo:
javascript
// Write Javascript code here // Define divider as a synchronous function var 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 var 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) }
- Producción:
- Manejo de excepciones en código basado en devolución de llamada (asincrónico): en código basado en devolución de llamada, uno de los argumentos de la devolución de llamada es err. Si ocurre un error, err es el error, si no ocurre un error, entonces err es nulo. El argumento err puede ir seguido de cualquier número de otros argumentos.
Ejemplo:
javascript
// Write Javascript code here var 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) } })
- Producción:
- Manejo de excepciones en código lleno de eventos: en un código lleno de eventos, el error puede ocurrir en cualquier lugar. Entonces, en lugar de arrojar el error, active el evento de error.
Ejemplo:
javascript
// Write Javascript code here // Definite our Divider Event Emitter var events = require("events") var 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 var 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)
- Producción:
Publicación traducida automáticamente
Artículo escrito por chaitanyashah707 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA