Résultats de 1 à 2 sur 2

Sujet : Exceptions

  1. #1
    Visiteur MP
    Visiteur MP

    Exceptions

    Bonjour

    J\'essaie de definir mes propres exceptions. Pour celà, j\'ai un fichier .h :

    Code:
    Code:
    #ifndef EXCEPTION_H
    #define EXCEPTION_H
    
    #include <string>
    #include <conio.h>
    
    using namespace std;
    
    class StandardException : public exception
    {
       protected :
          string msg;
       
       public:
          StandardException() throw();
          StandardException(const exception&) throw();
          StandardException& operator=(const StandardException&) throw();
          StandardException(string msgerr) throw();
          virtual ~StandardException() throw();
          virtual const char* what(void) const throw();
    };
    
    class InFileException : public StandardException
    {
        public:
            InFileException(string);
    };
    
    class OutFileException : public StandardException
    {
        public:
            OutFileException(string);
    };
    
    class MenuChoiceException : public StandardException
    {
        public:
            MenuChoiceException(string);
    };
    
    #endif


    Avec le fichier .cpp associe :

    Code:
    Code:
    #include <string>
    #include <conio.h>
    #include \"Exceptions.h\"
    
    using namespace std;
    
    StandardException::StandardException()
    {
    //   msg=\"\\nUne Exception a ete soulevee.\\n\";
    }
          
    StandardException::StandardException(string msgerr)
    {
       msg=msgerr;
    }
          
    string StandardException::what()
    {
       return(msg);
    }
    
    
    InFileException::InFileException(string msgerr)
    {
        msg=\"Une erreur s\'est produite a l\'ouverture du fichier de donnees.\\n\";
        msg+=\"Verifiez l\'existence des fichiers passes en parametre et reessayez.\\n\";
        msg+=\"Si le probleme persiste, contactez l\'Administrateur.\\n\\n\";
    }
    
    ...

    A la compilation, j\'obtiens :
    Code:

    Code:
    Exceptions.cpp:8: declaration of `StandardException::StandardException()\'
       throws different exceptions
    Exceptions.h:15: than previous declaration `
       StandardException::StandardException() throw ()\'
    
    Exceptions.cpp:13: declaration of `
       StandardException::StandardException(std::basic_string<char,
       std::char_traits<char>, std::allocator<char> >)\' throws different exceptions
    Exceptions.h:18: than previous declaration `
       StandardException::StandardException(std::basic_string<char,
       std::char_traits<char>, std::allocator<char> >) throw ()\'
    
    Exceptions.cpp:18: prototype for `std::string StandardException::what()\' does
    
       not match any in class `StandardException\'
    Exceptions.h:20: candidate is: virtual const char* StandardException::what()
       const

    Que manque-t-il ?

    Merci

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Salut, pouquoi faire
    StandardException() throw();
    Et non
    StandardException();
    Avec ensuite
    StandardExeption() : exeption()
    De plus en général, on ne fait pas ca dans le .h mais dans le .cpp
    #include <string>
    #include <conio.h>

    using namespace std;
    Au fait tu as trouvé la soluce ?
    Désolé s\'il n\'y a pas eu de réponses auparavant mais les modos étaient occupés ailleurs.
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Please disable Adblock!