Sur une API donnée, j’utilise une classe d’exception dont les erreurs particulières héritent. Et je catch toujours la classe parent là où je souhaite récupérer les erreurs inattendues.
Ex :
classExcep;classErrReseau:publicExcep;classErrFpu:publicExcep;classErrMem:publicExcep;// Erreur ajoutée depuis l'écriture du code qui suit.classErrNouvelle:publicExcep;voidfct(){try{// ...// On attend potentiellement une erreur réseau ou de mémoire.}catch(ErrReseauerr){// Traitement erreur réseau}catch(ErrMemerr){// Traitement erreur mémoire}catch(Exceperr){// Traitement des erreurs inattendues.// La classe Excep à une méthode virtuelle pure : std::string getMsg();// Au minimum :std::cerr<<"Unexpected error : "<<err.getMsg()<<std::endl;}}
[^] # Re: Mauvaise connaissance du c++
Posté par Anthony Jaguenaud . En réponse au journal Gestion de l'erreur - C++ - std::optional. Évalué à 3.
Sur une API donnée, j’utilise une classe d’exception dont les erreurs particulières héritent. Et je catch toujours la classe parent là où je souhaite récupérer les erreurs inattendues.
Ex :