Node.js util.getSystemErrorName() Método

El método util.getSystemErrorName() se define en el módulo de utilidades de la biblioteca estándar de Node.js. Se utiliza para saber el tipo de error que se presenta en el programa. Generalmente, este método se usa dentro de algún otro método para saber si ese método no da la respuesta esperada porque ocurre algún error, entonces qué tipo de error fue ese para asegurar que nuestro programa se rompa.

Sintaxis

util.getSystemErrorName( err )

Parámetros: este método acepta un solo parámetro ‘err’ que contiene un valor numérico que especifica el número de error o el código de error. Este código de error proviene de la propia API de Node.js.

Valor devuelto: Devuelve un nombre de string, es decir, un nombre de error para un código de error numérico.

Nota: Hay algunos errores comunes del sistema que se asignan a un código de error específico. La asignación entre el error del sistema y el código de error depende de la plataforma. A continuación se muestran algunos errores comunes del sistema.

  • EACCES (Permiso denegado): Este Error ocurre cuando se intenta acceder a un archivo cuyo permiso de acceso está prohibido.
  • EADDRINUSE (Dirección ya en uso): Esto ocurre cuando falla un intento de vincular un servidor (net, http o https) a una dirección local debido a que otro servidor en el sistema local ya ocupa esa dirección.
  • ECONNRESET (Restablecimiento de conexión por par): Esto ocurre cuando un par cierra a la fuerza una conexión. Esto normalmente resulta de una pérdida de la conexión en el socket remoto debido a un tiempo de espera o reinicio.
  • EISDIR (Es un directorio): Esto ocurre cuando una operación esperaba un archivo, pero se da la ruta del directorio.
  • EMFILE (Demasiados archivos abiertos en el sistema): esto ocurre cuando se ha alcanzado el número máximo de descriptores de archivo permitidos en el sistema y las requests de otro descriptor no se pueden cumplir hasta que al menos uno se haya cerrado. Esto se encuentra al abrir muchos archivos a la vez en paralelo.
  • ENOENT (No existe tal archivo o directorio): La operación fs suele generar este error cuando el componente del nombre de ruta especificado no existe, es decir, no se pudo encontrar ninguna entidad (archivo o directorio) en la ruta dada.
  • ENOTDIR (No es un directorio): esto ocurre cuando existe un componente de la ruta dada, pero no es un directorio.
  • ENOTEMPTY (Directorio no vacío): Esto ocurre cuando el directorio solicitado no está vacío como se esperaba.
  • TIMEDOUT (Operation timed out): esto ocurre cuando se establece una conexión y la solicitud se envía pero falla porque la parte conectada no respondió correctamente después de un período de tiempo.

Ejemplo 1:

// Importing File System module
const fs = require('fs')
  
// Importing utilities module
const util = require('util')
  
fs.readdir('file/not/exist', (err, files) => {
  if(err){
    const errName = util.getSystemErrorName(err.errno)
    console.log(`Error Name --> ${errName}`)
    console.log(`Error Code --> ${err.errno}`)
  }else{
    for(let file in files){
      console.log(file)
    }
  } 
}) 

Producción:

Error Name --> ENOENT
Error Code --> 4058

Explicación: el programa es básicamente para buscar todos los archivos y carpetas en un directorio determinado. El método fs.readdir() toma la ruta al directorio de destino. En caso de que la ruta dada no sea válida, se produce un error que puede romper nuestro programa y, por lo tanto, debe manejar el error y proporcionar al usuario una salida válida para que sepa por qué ocurre un error. Aquí para manejar el error se utiliza el método getSystemErrorName() que devuelve el nombre del error que se produce.

Ejemplo 2:

// Importing File System module
const fs = require('fs')
  
// Importing utilities module
const util = require('util')
  
fs.readdir('./index.js', (err, files) => {
  if(err){
    const errName = util.getSystemErrorName(err.errno)
    console.log(`Error Name --> ${errName}`)
    console.log(`Error Code --> ${err.errno}`)
  }else{
    for(let file in files){
      console.log(file)
    }
  } 
}) 

Producción:

Error Name --> ENOTDIR
Error Code --> 4052

Explicación: el programa es básicamente para buscar todos los archivos y carpetas en un directorio determinado. El método fs.readdir() toma la ruta al directorio de destino. Dado que la ruta proporcionada no es un directorio sino un archivo, se produce un error denominado ENOTDIR.

Publicación traducida automáticamente

Artículo escrito por hunter__js 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 *