Question

Cette approche est-elle correcte? Est-ce que je gère correctement les exceptions? Voir ma classe:

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.');
    }
}
}
Était-ce utile?

La solution

Si vous ne faites rien avec l'exception dans ce bloc de capture, il n'est pas nécessaire de joindre cet appel de méthode parent dans son propre bloc d'essai. La méthode passera automatiquement l'exception de l'implémentation du parent si elle en rencontre une en dehors d'un bloc d'essai, tout comme si vous avez lancé une exception du même contexte (comme vous le faites après votre condition If):

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

    if (!filter_var($value, FILTER_VALIDATE_EMAIL))
    {
        throw new InvalidArgumentException('etc.');
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top