¿Cómo resolver excepciones no controladas en Node.js?

Existen dos enfoques para resolver las excepciones no controladas en Node.js que se analizan a continuación:

Enfoque 1: uso del bloque try-catch: sabemos que Node.js es una plataforma creada en el tiempo de ejecución de JavaScript para crear fácilmente aplicaciones de red rápidas y escalables. Al ser parte de JavaScript, sabemos que la forma más destacada de manejar la excepción es que podemos tener un bloque de prueba y captura .

Ejemplo:

try {
      
    // The synchronous code that
    // we want to catch thrown
    // errors on
    var err = new Error('Hello')
    throw err
} catch (err) {
      
    // Handle the error safely
    console.log(err)
}

Nota: Sin embargo, tenga cuidado de no usar try-catch en código asíncrono, ya que no se detectará un error generado de forma asíncrona.

try {
    setTimeout(function() {
        var err = new Error('Hello')
        throw err
    }, 1000)
}
catch (err) {
      
    // Example error won't be caught
    // here... crashing our application
    // hence the need for domains
}

Enfoque 2: Uso del proceso: una buena práctica dice que debe usar el proceso para manejar la excepción. Un proceso es un objeto global que proporciona información sobre el proceso actual de Node.js. El proceso es una función de escucha que siempre está escuchando los eventos.
Pocos eventos son:

  • Desconectar
  • Salida
  • Mensaje
  • Resoluciones múltiples
  • Excepción no controlada
  • Rechazo manejado
  • Excepción no detectada
  • Advertencia

El enfoque más efectivo y eficiente es usar Process . Si se produce una excepción no detectada o no controlada en su flujo de código, esa excepción se detectará en el código que se muestra a continuación:

Ejemplo:

process.on('uncaughtException', function(err) {
  
    // Handle the error safely
    console.log(err)
})

El código anterior podrá manejar cualquier tipo de excepción no controlada que ocurra en Node.js.

Publicación traducida automáticamente

Artículo escrito por ShivanshBajpai y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *