En C ++, vous pouvez spécifier qu'une fonction peut ou non lever une exception à l'aide d'un spécificateur d'exception. Par exemple:
void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type
Je doute de les utiliser réellement pour les raisons suivantes:
- Le compilateur n'applique pas vraiment les spécificateurs d'exception de manière rigoureuse, donc les avantages ne sont pas grands. Idéalement, vous aimeriez obtenir une erreur de compilation.
- Si une fonction viole un spécificateur d'exception, je pense que le comportement standard est de terminer le programme.
- Dans VS.Net, il traite le jet (X) comme un jet (...), donc l'adhésion à la norme n'est pas forte.
Pensez-vous que les spécificateurs d'exception devraient être utilisés?
Veuillez répondre par «oui» ou «non» et fournir quelques raisons pour justifier votre réponse.