Los errores son lanzados por el motor, y las excepciones son lanzadas por el desarrollador. ¿Pero qué significa eso exactamente? En JavaScript, todas las excepciones son simplemente objetos. Mientras que la mayoría de las excepciones son implementaciones de la clase global Error, cualquier objeto antiguo puede ser lanzado. Con esto en mente, hay dos formas de lanzar una excepción: directamente a través de un objeto de Error y a través de un objeto personalizado.,
excepciones genéricas
mientras que la clase de Error incorporada está bastante bien definida, incluyendo cosas como el nombre del archivo, el número de línea y el seguimiento de la pila, por nombrar algunos, cuando se trata de ello, lo más importante a tener en cuenta es el mensaje. El primer parámetro—y a menudo el único-que se pasa durante la instanciación de errores, el mensaje es un error legible por humanos que a menudo puede estar relacionado directamente con el usuario final. Lanzar una excepción genérica es casi tan simple como parece., Todo lo que se necesita es instanciar un objeto de excepción—con el primer parámetro del constructor de Error siendo el mensaje de error—y luego it «throw» it.
throw new Error('Exception message');
error.código vs error.mensaje
es importante tener en cuenta aquí que, mientras que el mensaje de error son los datos de error legibles por humanos, nodo.js también proporciona un código de error que identifica el tipo de error que se está lanzando. Este valor es útil ya que le permite adaptarse programáticamente a los errores que se pueden lanzar, independientemente del mensaje contenido en el error.,
mientras que los códigos de error generalmente se usan para errores del sistema, al crear errores personalizados extendiendo la clase de error (consulte excepciones personalizadas a continuación para obtener más detalles), se puede definir un código personalizado y usarlo para definiciones de errores más estructuradas.
excepciones personalizadas
Si bien es posible lanzar cualquier objeto, la práctica recomendada es extender el objeto Error con una nueva clase. En entornos que lo soportan, esto permite que características como el seguimiento de pila automático se incluyan en la respuesta de excepción, lo que puede ser crucial cuando se trata de diagnosticar problemas más adelante.,
con un objeto de excepción personalizado creado, todo lo que tenemos que hacer es lanzarlo como cualquier otro error:
throw new CustomException('Exception message');
otra gran ventaja de extender el objeto de Error, en lugar de lanzar un error genérico, es que se pueden incluir metadatos adicionales con el error y recuperarlos más tarde. Esto puede ser increíblemente valioso en la depuración y el informe de errores, ya que a veces un mensaje de texto sin formato simplemente no es suficiente. Por ejemplo, puede incluir los valores de variables locales o estado que pueden ayudarlo a depurar el problema.,
function CustomException(message, metadata) { const error = new Error(message); error.metadata = metadata; return error;}
fuera de los datos incluidos en el objeto de Error, cuando se utiliza el notificador Rollbar para JavaScript, también se incluyen datos adicionales con el informe. Esto incluye información contextual como el navegador y el usuario.
// Caught errorstry { doSomething();} catch (e) { Rollbar.error("Something went wrong", e);}
escribiendo en la consola
en JavaScript, la consola es donde se pueden encontrar todos los registros (más sobre eso en ¿dónde se registran los errores de JavaScript?). Afortunadamente, escribir datos en la consola es increíblemente sencillo. Para lograr esto, simplemente llame a la consola.,log (), con el mensaje que desea escribir en el registro.
console.log("Top level");
Leave a Reply