Errores personalizados en JavaScript
Heredar de Error para llevar datos estructurados de la falla.
class ValidationError extends Error {
constructor(field) {
super(`invalid field: ${field}`);
this.name = "ValidationError";
this.field = field;
}
}
function validate(user) {
if (!user.email) throw new ValidationError("email");
return user;
}
try {
validate({});
} catch (error) {
if (error instanceof ValidationError) console.warn(error.field);
else throw error;
}
Cómo funciona
extends Errorysuper(message)montan la clase.- Campos extra como
fieldviajan con el error. instanceoflo distingue; relanza el resto.
Palabras clave y builtins usados aquí
catchclassconstructorelseextendsfunctionifreturnsuperthisthrowtry
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 366
- Tokens
- 92
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 55 segundos.
Paso 1 de 2 en Errores; paso 38 de 43 en Fundamentos del lenguaje.