La gestion des exceptions en C ++ est limitée à essayer / lancer / attraper. Contrairement à Object Pascal, Java, C # et Python, même en C ++ 11, la finally
construction n'a pas été implémentée.
J'ai vu énormément de littérature C ++ parler de "code sécurisé d'exception". Lippman écrit que le code sécurisé d'exception est un sujet important mais complexe et complexe, qui dépasse le cadre de son introduction, ce qui semble impliquer que le code sécurisé n'est pas fondamental pour C ++. Herb Sutter consacre 10 chapitres à ce sujet dans son exceptionnel C ++!
Pourtant, il me semble que bon nombre des problèmes rencontrés lors de la tentative d'écriture de "code sécurisé d'exception" pourraient être assez bien résolus si la finally
construction était implémentée, permettant ainsi au programmeur de s'assurer que même en cas d'exception, le programme puisse être restauré. à un état sûr, stable, sans fuite, proche du point d’allocation des ressources et du code potentiellement problématique. En tant que programmeur Delphi et C # très expérimenté, j'utilise try .. finally, mais la plupart des programmeurs de ces langages bloquent assez largement dans mon code.
Considérant tous les "cloches et sifflets" mis en œuvre dans C ++ 11, j'ai été étonné de constater que "finalement" n'était toujours pas là.
Alors, pourquoi la finally
construction n'a-t-elle jamais été implémentée en C ++? Ce n'est vraiment pas un concept très difficile ou avancé à comprendre et cela aide énormément le programmeur à écrire du «code protégé par exception».
finally
de langage C ++ et quelles techniques de gestion des exceptions sont utilisées à sa place?" est valide et sujet pour ce site. Les réponses existantes couvrent bien ceci, je pense. En transformant cela en une discussion sur "Les raisons pour lesquelles les concepteurs C ++ ont choisi de ne pas inclure la finally
peine de gagner?" et "Devrait- finally
on ajouter au C ++?" et poursuivre la discussion à travers les commentaires sur la question et chaque réponse ne correspond pas au modèle de ce site de questions-réponses.