IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Classe d'exception abstraite


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Par défaut Classe d'exception abstraite
    Bonjour,

    Je voulais savoir à quoi sa sert de définir une classe d'exception comme abstraite ?

    merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Comme pour toutes les classes... Définir une structure commune dont pourront bénéficier d'autres classes d'exception (par exemple une structure de chaînage d'exceptions), et définir un type qui peut être commun à plusieurs exceptions (par exemple une exception commune à des problèmes d'un certain type, dont on veut être certain que pour la lancer, l'utilisateur devra utiliser un type dérivé plus précis).
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Il faut voir que la plupart du temps, les exceptions se manipulent via une référence, pour éviter des copies qui elles-même pourrait provoquer des exceptions. On peut donc tout à fait imaginer le code suivant (en fait très proche de ce qui se fait dans la librairie standard) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    class exception
    {
    public:
      exception() { }
      virtual ~exception() { }
      virtual const char* error() = 0;
    };
     
    ...
     
    class my_exception
    {
      ... (ctor, dtor)
      virtual const char* error() { return "une erreur s'est produite!"; }
    };
     
    ...
     
    try 
    {
      ...
      throw my_exception();
    } 
    catch (exception& e)
    {
      std::cout << e.error() << std::endl;
    }
    On peut ainsi différencier les exceptions, tout en permettant à un bloc catch de toutes les récupérer au besoin.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Par défaut
    ok merci beaucoup

Discussions similaires

  1. Classe d'exception langage
    Par batha dans le forum C++Builder
    Réponses: 1
    Dernier message: 26/04/2007, 15h35
  2. Class cast exception
    Par gloglo dans le forum Langage
    Réponses: 3
    Dernier message: 09/01/2007, 18h26
  3. pb avec un classe d'exception
    Par richard038 dans le forum Langage
    Réponses: 6
    Dernier message: 18/01/2006, 10h28
  4. Pb avec une Classe d'exception EOleError
    Par raoulmania dans le forum Composants VCL
    Réponses: 2
    Dernier message: 27/05/2005, 12h39
  5. [Message d'erreur] Classe d'exception
    Par Pascal dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/05/2004, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo