Articles of exceptions

Que se passera-t-il si je désactive les exceptions C ++ dans un projet?

Visual C ++ a un paramètre de compilateur “Activer les exceptions C ++” qui peut être défini sur “Non”. Que se passera-t-il si je le règle de cette façon? Mon code ne jette ni n’attrape jamais explicitement d’exceptions (et par conséquent, la première exception levée mettra de toute façon fin au programme) et ne repose […]

Les exceptions doivent-elles être chaînées en C ++?

Je viens de finir de travailler sur un programme C ++ – où j’ai implémenté mes propres exceptions (bien que dérivé de std :: exception). La pratique que j’ai appliquée lorsqu’une exception provoque une réaction en chaîne, propageant l’erreur vers le haut et générant d’autres exceptions, consiste à concaténer le message d’erreur à chaque étape […]

exception de sérialisation boost: classe non enregistrée, problème de sérialisation de base polymorphe

Je lisais, faisais des références croisées et, finalement, je ne trouvais pas d’exemple cohérent ni de réponse. ce que j’essaie de faire est assez simple, mais il me manque clairement quelque chose. en anglais, j’ai une structure de classe avec deux bases abstraites (BB pur dérive de AA pur), que je gère en tant que: […]

Sécurité exceptionnelle en Qt

Wikipedia dit qu ‘”un morceau de code est dit protégé contre les exceptions, si les échecs d’exécution du code ne produiront pas d’effets néfastes, tels que des memory leaks, des données stockées tronquées ou une sortie non valide. Le code d’exception doit satisfaire les invariants placé sur le code même si des exceptions se produisent. […]

Les meilleures pratiques pour définir vos propres classes d’exceptions?

J’ai quelques cas exceptionnels que je veux lancer et attraper, alors je veux définir mes propres classes d’exceptions. Quelles sont les meilleures pratiques pour cela? Devrais-je hériter de std::exception ou de std::runtime_error ?

Fuite dans le code d’exception C ++

Je travaille avec un projet d’école, et l’une des tâches est de s’assurer qu’il ne coule pas du tout. J’ai donc exécuté mon programme dans valgrind et, comme je n’utilisais aucune allocation de mémoire dynamic, je ne pensais pas que je trouverais quoi que ce soit. Oups, j’ai fait. Valgrind m’a donné ceci: ==22107== 16 […]

Comment attraper une exception levée lors de l’initialisation d’un membre statique

J’ai une classe avec un membre statique: class MyClass { public: static const SomeOtherClass myVariable; }; Ce que j’initialise dans le fichier CPP comme ceci: const SomeOtherClass MyClass::myVariable(SomeFunction()); Le problème est que SomeFunction() lit une valeur du registre. Si cette clé de registre n’existe pas, une exception est levée. Cela provoque l’explosion de mon programme […]

Est-il judicieux d’attraper les exceptions dans l’essentiel (…)?

J’ai trouvé du code dans un projet qui ressemble à ça: int main(int argc, char *argv[]) { // some stuff try { theApp.Run(); } catch (std::exception& exc) { cerr << exc.what() << std::endl; exit(EXIT_FAILURE); } return (EXIT_SUCCESS); } Je ne comprends pas pourquoi les exceptions sont attrapées. Dans le cas contraire, l’application se fermerait simplement […]

C ++ error-codes vs ASSERTS vs Exceptions choix choices :(

Code en question J’ai entendu (et régurgité) le mantra des exceptions C ++ des deux côtés de la clôture. Cela fait un moment et je veux juste me recentrer une fois de plus, et cette discussion est spécifique au code que j’ai lié (ou aux classes de bas niveau telles que les conteneurs) , et […]

utilisation de captures (…) (points de suspension) pour l’parsing post mortem

Quelqu’un d’une autre question a suggéré d’utiliser catch(…) pour capturer toutes les exceptions inattendues ou non autrement gérées – en entourant la totalité de main() avec le bloc try{}catch(…){} . Cela semble être une idée intéressante qui permettrait de gagner beaucoup de temps à déboguer le programme et à laisser au moins un soupçon sur […]