Maison >développement back-end >C++ >Les spécificateurs d'exception sont-ils toujours pertinents en C moderne ?
Dois-je incorporer des spécificateurs d'exception en C ?
Les spécificateurs d'exception en C permettent aux fonctions d'indiquer si elles peuvent lever des exceptions, telles que :
<code class="cpp">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</code>
Bien que ces spécificateurs puissent transmettre une intention, leur utilisation pratique est discutable en raison de plusieurs facteurs :
Limitations de l'application
Les compilateurs n'appliquent pas strictement les spécificateurs d'exception, ce qui réduit leur efficacité. Le comportement idéal impliquerait des erreurs de compilation en cas de violation des spécifications, mais cela n'est pas garanti.
Punition sévère en cas de violations
Si une fonction viole un spécificateur d'exception, le comportement standard est pour terminer le programme. 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, traitent throw(X) comme throw(...), compromettant le respect de la norme.
Arguments contre l'exception Spécificateurs
En plus des préoccupations ci-dessus, plusieurs arguments plaident contre l'utilisation de spécificateurs d'exception :
Quand les spécificateurs d'exception peuvent être utiles
Malgré la recommandation générale contre l'utilisation de spécificateurs d'exception, ils peuvent toujours être bénéfiques lorsque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!