Note: je ne suis pas à jouer l'avocat du diable ou quelque chose comme ça ici, je suis juste vraiment curieux car je ne suis pas dans ce camp de moi-même.
La plupart des types de la bibliothèque standard, soit ont une mutation des fonctions que l'on peut lancer des exceptions (par exemple, si l'allocation de la mémoire échoue) ou de la non-mutation des fonctions que l'on peut lancer des exceptions (par exemple en dehors des limites indexés accesseurs). En plus de cela, de nombreuses fonctions gratuites peut lancer des exceptions (par exemple, operator new
et dynamic_cast<T&>
).
Comment avez-vous pratiquement traiter dans le contexte de la "nous n'utilisons pas d'exceptions"?
Êtes-vous essayer de ne jamais appeler une fonction qui peut jeter? (Je ne vois pas comment que j'avais de l'échelle, donc je suis très intéressé de savoir comment vous le faire si c'est le cas)
Êtes-vous ok avec la bibliothèque standard de projection et de vous traiter de "nous n'utilisons pas d'exceptions" comme "nous n'avons jamais jeter les exceptions de notre code et nous n'avons jamais attraper les exceptions à partir de l'autre le code"?
Êtes-vous en désactivant la gestion des exceptions au total via des commutateurs du compilateur? Si oui, comment faire l'exception des jets de pièces de la bibliothèque standard de travail?
MODIFIER Votre constructeur, peuvent-ils échouer, ou pensez-vous, par convention, l'utilisation d'un 2-l'étape de la construction avec un init fonction qui permet de retourner un code d'erreur en cas d'échec (dont le constructeur ne peut pas faire), ou faites-vous autre chose?
MODIFIER des clarifications Mineures 1 semaine après le début de la question... Beaucoup de contenu dans les commentaires et les questions ci-dessous se concentrer sur le pourquoi aspects des exceptions vs "autre chose". Mon intérêt n'est pas que, mais quand vous choisissez de faire "autre chose", comment réagissez-vous à la bibliothèque standard de pièces qui ne lancer des exceptions?