Code non managé Visual C ++: Utiliser / EHa ou / EHsc pour les exceptions C ++?

Si je crée un nouveau projet en C++, Visual Studio 2008 ou plus, qui la gestion des exceptions est le modèle que je veux aller avec?

Je comprends que l'option de /EHa des résultats en moins de code efficace, et aussi des captures SEH exceptions, non?

Donc, j'ai été directeur claire de l'option, et généralement avec /EHsc, de sorte que je suis le seul à en attraper les exceptions C++ qui sont en fait des jetés et non pas d'attraper des violations d'accès et d'autres structuré execptions, dans catch(...) les gestionnaires. Si il y a une violation d'accès dans mon code, je ne veux pas qu'il soit masqué par un catch(...) {}.

Je code avec d'autres personnes qui veulent catch(...) {} pour ne rien faire et ils veulent le faire si il y a une violation d'accès, ce qui semble être une très mauvaise idée pour moi. Si il y a un bug à cause du mauvais codage, vous ne voulez pas de coller vos doigts dans vos oreilles et dire haut et fort "La La La la la!", de sorte que vous n'avez pas à avoir le plantage du programme? En effet, si le code est présent dans un mauvais état à cause d'une erreur de codage, voulez-vous vraiment le code de continuer?

Donc ma pensée générale est que /EHa crée plus lent, code et il permet aux programmeurs de s'en tirer avec l'écriture de code que si une erreur de bug est présent, il continuera à fonctionner dans un état indéfini.

BTW, je parle d'applications et le code de service qui est ce que nous avons écrit pour la plupart. Pas de faible niveau de pilotes de périphérique ou quelque chose comme ça.

Veuillez peser avec vos pensées.

source d'informationauteur MarkS