M2103-TP3-Exo-1

Créez le projet CException.

Dans les fichiers CException.h et CException.cpp, ajouter dans l’espace de noms nsUtil la classe CException, dérivée de la classe standard exception, possédant deux attributs (données membres) :

  • myLibelle : un texte de type string contenant un diagnostic d’erreur,
  • myCodErr : un entier non signé,

et les méthodes suivantes :

  • un constructeur à deux paramètres (le libellé de l’exception et le code de l’erreur), avec d’éventuelles valeurs par défaut,
  • un destructeur virtuel (vide), nécessaire car la classe mère (exception) est elle-même virtuelle,
  • deux accesseurs permettant de récupérer les valeurs des données membres,
  • une récriture de la fonction virtuelle what(), héritée de la classe mère exception, de profil suivant :
    virtual const char* what() const noexcept;
    

    qui, au moyen de la méthode c_str() de la classe string, renvoie le libellé de l’exception sous la forme d’une NTCTS (dont le type est const char*).

  • la fonction d’affichage (provisoire) diplay(), qui affiche à l’écran le contenu de l’exception, par exemple dans le format suivant :
    Exception : xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Code      : yyyyy
    

Dans la fonction testException() de l’espace de noms anonyme du fichier testCException.cpp, écrire une boucle terminée par la fin de fichier cin, constituée :

  • de la saisie d’une chaîne de caractères (le libellé de l’exception),
  • de la saisie d’un entier (le code d’erreur associé),
  • de la construction d’une CException,
  • de son affichage.

Compiler et tester.