Pregunta

¿Está bien este enfoque?¿Estoy manejando las excepciones correctamente?Ver mi clase:

class Email extends String
{
protected function validate($email)
{
    try{
        parent::validate($email);
    } catch(InvalidArgumentException $e) {
        throw $e;
    }

    if(!filter_var($value,FILTER_VALIDATE_EMAIL))
    {
        throw new InvalidArgumentException('etc.');
    }
}
}

¿Fue útil?

Solución

Si no va a hacer nada con la excepción dentro de ese bloque de captura, no es necesario encerrar a esa llamada del método principal en su propio bloque de prueba.El método aprobará automáticamente la excepción de la implementación de los padres si se encuentra con uno fuera de un bloque de prueba, al igual que si lanzó una excepción desde el mismo contexto (como lo hace después de su condición de IF):

protected function validate($email)
{
    parent::validate($email);

    if (!filter_var($value, FILTER_VALIDATE_EMAIL))
    {
        throw new InvalidArgumentException('etc.');
    }
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top