Domanda

è questo approccio ok?Sto maneggiando le eccezioni correttamente?Vedi la mia 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.');
    }
}
}
.

È stato utile?

Soluzione

Se non hai intenzione di fare nulla con l'eccezione all'interno di quel blocco di cattura, non è necessario racchiudere quella chiamata del metodo principale nel proprio blocco da prova.Il metodo passerà automaticamente l'eccezione rispetto all'attuazione del genitore se incontrerà uno al di fuori di un blocco try-catch, proprio come se hai lanciato un'eccezione dallo stesso contesto (come fai dopo la tua sezione):

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top