Ho visto almeno una fonte affidabile (una classe C ++ che ho preso) raccomandare che le classi di eccezioni specifiche dell'applicazione in C ++ dovrebbero ereditare da std::exception
. Non sono chiaro i vantaggi di questo approccio.
In C # le ragioni per ereditare da ApplicationException
sono chiare: ottieni una manciata di metodi, proprietà e costruttori utili e devi solo aggiungere o sovrascrivere ciò di cui hai bisogno. Con std::exception
sembra che tutto ciò che ottieni sia un what()
metodo per sovrascrivere, che potresti anche creare tu stesso.
Quindi quali sono i vantaggi, se ce ne sono, dell'utilizzo std::exception
come classe base per la mia classe di eccezione specifica per l'applicazione? Ci sono buone ragioni per non ereditare std::exception
?