• [^] # Re: Mauvaise connaissance du c++

    Posté par . 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 :

    class Excep;
    class ErrReseau : public Excep;
    class ErrFpu : public Excep;
    class ErrMem : public Excep;
    // Erreur ajoutée depuis l'écriture du code qui suit.
    class ErrNouvelle : public Excep;
    void fct()
    {
     try {
     // ...
     // On attend potentiellement une erreur réseau ou de mémoire.
     } catch (ErrReseau err)
     {
     // Traitement erreur réseau
     } catch (ErrMem err)
     {
     // Traitement erreur mémoire
     } catch (Excep err)
     {
     // 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;
     }
    }