Dois-je repenser une exception dans ce cas?
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.');
}
}
}
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