Clases de error en Node.js

Node.js hereda los errores de JavaScript y del sistema de la clase <Error> de JavaScript y garantiza proporcionar las propiedades que están disponibles en esa clase. Las excepciones de JavaScript que arrojan errores inmediatamente usando el mecanismo de lanzamiento que son manejados por la construcción try…catch que proporciona JavaScript.

Node.js maneja los errores que ocurren durante la ejecución de la aplicación, admite múltiples mecanismos de error, es decir, cómo se informan y manejan todos estos errores depende del tipo de error y el estilo de la API . El código de la aplicación también puede desenstringr errores especificados por el usuario. Todos esos errores generados por Node.js son instancias o heredados de la clase Error. En Node.js, experimenta muchos tipos de errores al ejecutar las aplicaciones que se detallan a continuación:

Clase: AssertionError: AssertionErrors son extendidos por la clase < errors.Error >. Cuando detecta que se ha producido una violación lógica excepcional que nunca debería ocurrir, estos errores se activan y el módulo de aserción genera todos estos errores. Todos esos errores que arroja el módulo de afirmación son instancias de la clase AssertionError .

Ejemplo 1: Nombre de archivo: index.js

// Node.js program to demonstrate 
// Assertion error in JavaScript
  
// Importing Assert module
const assert = require('assert');
  
console.log("Throws Assertion Error...");
  
// Comparing equality using assert
assert.strictEqual(
    {'Alfa':'hi', 'beta':'hello'}, 
    {'Alfa':'hi', 'beta':'hello'}
);
// Throws AssertionError

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

Lanza un error de aserción
>> Lanza un error de aserción…
>> assert.js:101
 throw new AssertionError(obj);
AssertionError [ERR_ASSERTION]: los valores tienen la misma estructura pero no son iguales a las referencias:
{ Alfa: ‘hola’, beta: ‘hola’} en Object.<anónimo> (C:\Users\Ajay Kumar\Desktop\test2.js: 12:8)……. operador: ?[32m’strictEqual’?[39m}

Clase: RangeError: Muestra que el argumento proporcionado no estaba dentro del rango aceptable de valores. Podría ser un rango numérico, o fuera del conjunto de opciones.

Ejemplo 2: Nombre de archivo: index.js

// Node.js program to demonstrate 
// range error in JavaScript
  
// Importing http module
const http = require('http');
  
// Creating server with port no
// out of range
var server = http.createServer()
    .listen(46456656, (err, res)=>{
    // Throws Range Error
});

Producción:

Lanza un error de rango
>> internal/validators.js:192
   throw new ERR_SOCKET_BAD_PORT(nombre, puerto);
RangeError [ERR_SOCKET_BAD_PORT]: options.port debe ser >= 0 y < 65536. Recibido 46456656……. código: ?[32m’ERR_SOCKET_BAD_PORT’?[39m}

Clase: ReferenceError: Especifica que la variable a la que alguien intenta acceder no está definida. Tales tipos de errores especifican errores tipográficos en el código o un programa roto. Las instancias de ReferenceError especifican un error en el código hasta que una aplicación ejecuta código dinámicamente.

Ejemplo 3: Nombre de archivo: index.js

// Node.js program to demonstrate 
// Reference error in JavaScript
  
try {
  const alfa = 10;
  const beta = alfa + gamma;
  
  // Throws with a ReferenceError 
  // because gamma is undefined
} catch (err) {
  console.log(err.message);
  console.log(err);
  
  // Handle the error here.
}

Producción:

Lanza un error de referencia
>> gamma no está definido
>> ReferenceError: gamma no está definido
en el objeto. .js:17:47

Clase: SyntaxError: Especifica que el programa no es un JavaScript válido y puede generarse como resultado de la evaluación del código. Estos errores ocurren principalmente como resultado de eval, Function, require o vm.

Ejemplo 4: Nombre de archivo: index.js

// Node.js program to demonstrate 
// Syntax error in JavaScript
  
try {
  
  // Import vm module
  require('vm').runInThisContext('alfa @ beta');
} catch (error) {
  
  // Prints a Syntax Error.
  console.log(error);
}

Producción:

Lanza un error de sintaxis
>> alfa @ beta
>> SyntaxError: token no válido o inesperado
   en el nuevo script (vm.js:99:7)… en internal/main/run_main_module.js:17:47

Clase: SystemError: los errores del sistema generados por Node.js ocurren debido a excepciones dentro de su entorno de tiempo de ejecución. cuando una aplicación viola una restricción del sistema operativo, se pueden esperar estos errores.

Ejemplo 5: Nombre de archivo: index.js

// Node.js program to demonstrate 
// Reference error in JavaScript
  
// Importing fs module
const fs = require('fs');
  
// Callback function
function errorCallback(err, data) {
  if (err) {
    console.error('There was an error', err);
    return;
  }
  return(data);
}
  
// Trying to read file that does not exist
fs.readFile('/some/non-existing/file', errorCallback);

Producción:

Lanza un error
>> Hubo un error [Error: ENOENT: no existe tal archivo o directorio, abra ‘C:\some\non-existing\file’] { errno: -4058, código: ‘
 ENOENT
 ‘,
 syscall: ‘open’ ,
 ruta: ‘C:\\algunos\\archivo inexistente’}

Clase: TypeError: Especifica que el argumento proporcionado no es un tipo permitido. Por ejemplo, llamar a una función que en realidad no existe sería un TypeError. Como si el formulario fuera de validación de argumentos, lanza instancias de TypeError inmediatamente.

Ejemplo 6: Nombre de archivo: index.js

// Node.js program to demonstrate 
// Type error in JavaScript
  
try {
  if(1) {
    if(2) {
      console.loo('alfa')
    }
  }
} catch (error) {
console.log(error);  
}

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

Lanza un error de tipo
>> TypeError: console.loo no es una función
   en Object. <anónimo> (C:\Users\Ajay Kumar\Desktop\test2.js:104:15)… en internal/main/run_main_module.js: 17:47

Referencia: https://nodejs.org/api/errors.html#errors_class_assertionerror

Publicación traducida automáticamente

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