Los errores son útiles para informar de que algo va mal o es inesperado en un programa o en un fragmento de código.
Son objetos de JavaScript.
La propiedad principal de este objeto es message:
const error = new Error('Oops, something went wrong');
console.log(error.message);
// => "Oops, something went wrong"
Con la sintaxis throw puedes lanzar un error.
throw new Error('Oops');
Cuando se lanza un error, la ejecución actual se detiene y se reanuda en el primer bloque catch de la pila de llamadas.
try {
throw new Error('Oops');
} catch (error) {
console.log(error.message);
// => "Oops"
}
Como con cualquier clase en JavaScript, las subclases pueden heredar de Error para crear errores personalizados usando la palabra clave extends.
La sintaxis instanceof comprueba si el error capturado es una instancia de una subclase concreta de Error.
class CustomError extends Error {}
try {
// ... Code that may throw an error
} catch (error) {
if (error instanceof CustomError) {
console.log('The error thrown is an instance of the CustomError');
}
}
Además del objeto Error, existen otros objetos de error integrados. Puedes obtener más información aquí
También puedes definir tu propio tipo de error personalizado creando una clase que extienda uno de los tipos de error integrados
class MyCustomError extends Error {}
Aunque la sintaxis throw se suele usar para lanzar un objeto Error, JavaScript es flexible y te permite lanzar un string, un null o cualquier tipo primitivo.
Aunque esto no es estándar en JavaScript, la mayoría de los entornos de JavaScript implementan una propiedad stack en los objetos de error, lo que te permite obtener la traza de pila del error que se lanzó.