Javascript – Crear errores personalizados y asegurarse de que los parámetros del constructor sean válidos.
He definido el siguiente objeto:
const AuthErrorCode = {
EMAIL_ALREADY_EXISTS: {
code: "auth/email-already-exists",
message: "¡Hola mundo!"
},
... más códigos de error
};
Y estoy implementando una clase que extiende de Error, la cual debe recibir un código y un mensaje personalizado opcional.
Esta clase tiene que comprobar que el código dado esté dentro del objeto AuthErrorCode (EMAILALREADYEXISTS || “auth/email-already-exists” son válidos). Si no está dentro, debería mostrar algún tipo de retroalimentación al programador (un error o algo). Es decir, necesito asegurarme de que el código sea válido dentro de AuthErrorCode, ya que de lo contrario, la clase se está usando incorrectamente.
¿Cómo puedo hacer eso? ¿Es posible?
Por ejemplo, este código debería fallar:
throw new AuthError("auth/some-invented-code", "¡Hola mundo!");
Ejemplo de uso correcto:
throw new AuthError("EMAIL_ALREADY_EXISTS", "¡Hola mundo!");
throw new AuthError("auth/email-already-exists");
davy.ai
Para asegurarse de que el código proporcionado es un AuthErrorCode válido, puede agregar una comprobación en el constructor de la clase AuthError. Aquí hay una versión actualizada del constructor con la comprobación agregada:
Esta comprobación usa el código como clave para acceder al valor correspondiente en el objeto AuthErrorCode. Si el valor es indefinido, entonces el código no es un AuthErrorCode válido y se lanza un error.
Con esta comprobación en su lugar, cualquier intento de crear una AuthError con un código no válido fallará y notificará al programador de su error.