J'ai vu au moins une source fiable (une classe C ++ que j'ai prise) recommander que les classes d'exceptions spécifiques à l'application en C ++ devraient hériter de std::exception
. Je ne suis pas sûr des avantages de cette approche.
En C #, les raisons d'hériter de ApplicationException
sont claires: vous obtenez une poignée de méthodes, de propriétés et de constructeurs utiles et vous n'avez qu'à ajouter ou remplacer ce dont vous avez besoin. Avec std::exception
il semble que tout ce que vous obtenez est une what()
méthode de remplacement, que vous pouvez tout aussi bien créer vous-même.
Alors, quels sont les avantages, le cas échéant, de l'utilisation std::exception
comme classe de base pour ma classe d'exceptions spécifique à l'application? Y a-t-il de bonnes raisons de ne pas hériter std::exception
?