Pergunta

Essa abordagem está correta?Estou lidando com exceções corretamente?Veja minha aula:

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.');
    }
}
}
Foi útil?

Solução

Se você não for fazer nada com a exceção nesse bloco catch, não será necessário incluir a chamada do método pai em seu próprio bloco try-catch.O método passará automaticamente a exceção da implementação do pai se encontrar uma fora de um bloco try-catch, como se você lançasse uma exceção do mesmo contexto (como faz após sua condição if):

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

    if (!filter_var($value, FILTER_VALIDATE_EMAIL))
    {
        throw new InvalidArgumentException('etc.');
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top