Vous enfoncez certainement tous les deux des portes ouvertes :) :
Le Google C++ style guide est vieux: pre-C++11. Il date d'une époque où la RAII n’était pas répandu et la majorité des code bases n'étaient pas exception safe. Dans ce cadre, oui l'exception ban était justifiée.
Pour information, Google est dit d'avoir une code-base C++ qui s'approche ou dépasse le milliard de ligne de C++, il est presque impossible de changer une règle sur les exceptions du jour au lendemain sur des code bases de cette taille sans grosses conséquences.
De l'aveu du Monsieur C++ Engineering chez Google, la policy serait certainement différente si c'était à refaire aujourd'hui.
Les exceptions (comme mechanisme, en dehors de C++) sont un excellent moyen de faire de l'error report de manière sure et concise sans un code trop verbeux.
En C++, l’implémentation actuelle du mechanisme d'exceptions souffrent de plusieurs problème ( RTTI, nécessite des allocations dynamiques, utilise l’héritage, UB quand appelée dans les destructeurs, nécessite un runtime, vulnerabilite DDOS, type leaking, etc... ) qui fait que même en 2022, certaines codebases ne peuvent pas se permettre de l'utiliser ( safety critical, kernel code, etc ).
[^] # Re: Pas de fumée sans feu
Posté par Firwen (site web personnel) . En réponse au journal De l'influence néfaste de Google sur les développeurs C++. Évalué à 8.
Vous enfoncez certainement tous les deux des portes ouvertes :) :
Le Google C++ style guide est vieux: pre-C++11. Il date d'une époque où la RAII n’était pas répandu et la majorité des code bases n'étaient pas exception safe. Dans ce cadre, oui l'exception ban était justifiée.
Pour information, Google est dit d'avoir une code-base C++ qui s'approche ou dépasse le milliard de ligne de C++, il est presque impossible de changer une règle sur les exceptions du jour au lendemain sur des code bases de cette taille sans grosses conséquences.
De l'aveu du Monsieur C++ Engineering chez Google, la policy serait certainement différente si c'était à refaire aujourd'hui.
Les exceptions (comme mechanisme, en dehors de C++) sont un excellent moyen de faire de l'error report de manière sure et concise sans un code trop verbeux.
En C++, l’implémentation actuelle du mechanisme d'exceptions souffrent de plusieurs problème ( RTTI, nécessite des allocations dynamiques, utilise l’héritage, UB quand appelée dans les destructeurs, nécessite un runtime, vulnerabilite DDOS, type leaking, etc... ) qui fait que même en 2022, certaines codebases ne peuvent pas se permettre de l'utiliser ( safety critical, kernel code, etc ).