"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Les spécificateurs d'exception sont-ils toujours utiles en C ++ moderne?

Les spécificateurs d'exception sont-ils toujours utiles en C ++ moderne?

Publié le 2025-04-16
Parcourir:507

Are Exception Specifiers Still Relevant in Modern C  ?

Dois-je incorporer des spécificateurs d'exception en c?

Les spécificateurs d'exception en C permettent des fonctions pour indiquer si elles peuvent lancer des exceptions, telles que:

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

Bien que ces spécificateurs puissent transmettre l'intention, leur utilisation pratique est discutable en raison de plusieurs facteurs:

Les limitations de l'application des spécificateurs d'exception, ne réduisent pas leur efficacité. Le comportement idéal impliquerait des erreurs de compilation pour violer les spécifications, mais ce n'est pas garanti. Cette réponse sévère peut ne pas être souhaitable dans tous les cas.

Traitement incohérent dans les environnements de développement

Certains environnements de développement, tels que vs.net, Treat Throw (x) comme throw (...), saper l'adhésion à l'exception de l'exception. Spécificateurs

En plus des préoccupations ci-dessus, plusieurs arguments défendent l'utilisation des spécificateurs d'exception:

Compatibilité avec les modèles:

Spécifications d'exception peuvent entraver le développement du code de modèle dû aux comportements d'exception imprévisibles. Extensibilité:

Spécification des exceptions attendues peut limiter l'évolution du code dans le temps. Réservation des exceptions pour des scénarios exceptionnels.

Lorsque des spécificateurs d'exception peuvent être utiles

malgré la recommandation générale contre l'utilisation des spécificateurs d'exception, ils peuvent toujours être bénéfiques lorsque:
  • A alebrary throws throws uniquement exceptions, autorisation pour les spécifications de la crualité. Cependant, ce cas d'utilisation est rare dans la pratique.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3