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 […]
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 […]
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: […]
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. […]
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 ?
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 […]
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 […]
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 […]
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 […]
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 […]