Los errores son útiles para reportar cuando algo está 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"
Usando la sintaxis throw, puedes lanzar un Error.
throw new Error('Oops');
Cuando se lanza un error, la ejecución actual se detiene y continúa 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 verificará si el error capturado es una instancia de una subclase particular 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 incorporados. Puedes aprender más al respecto aquí
También puedes definir tu propio tipo de error personalizado creando una clase que extienda uno de los tipos de error incorporados
class MyCustomError extends Error {}
Aunque la sintaxis throw se usa normalmente para lanzar un objeto Error, JavaScript es flexible y te permitirá 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 Error, lo que te permite obtener la traza de pila del error que se lanzó.