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 :

creation de table d'erreurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut creation de table d'erreurs
    Bonsoir,

    je cherche a creer une table d'erreur, directement dans un header, qui contiendra pour chaque numero d'erreur (negative pour les erreurs, positif pour les warnings) un descriptif associé.

    Est-ce une map que je dois utiliser? sachant que je ne cherche pas a avoir d'instance de la dite liste, ce serait plutot une methode static, mais si je peux eviter de mettre ca dans une classe.... Je prefererai privilégier un fichier inclut lors de la compil dans l'ensemble de mes fichiers, et acceder directement au descriptif en fonction du numero... Comment faire?

    Cordialement

    rikau2

  2. #2
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Pourquoi ne pas utiliser les exceptions pour les erreurs, par exemple ?
    Pour les warning, dans le sens où ils ne doivent pas arrêter le code exécuté, tu dois voir la chose autrement.

  3. #3
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Citation Envoyé par Alp
    Pourquoi ne pas utiliser les exceptions pour les erreurs, par exemple ?.
    Les erreurs n'arretent pas vraiment le programme, c'est une facon dans mon code de prevenir l'interface graphique que quelquechose n'est pas bien parametre et que la suite ne peut pas s'executer sans la modification necessaire que le code d'erreur retour apportera.

    Citation Envoyé par Alp
    Pour les warning, dans le sens où ils ne doivent pas arrêter le code exécuté, tu dois voir la chose autrement.
    Les warnings doivent dans tous les cas etre affiche a l'utilisateur, afin qu'il sache par exemple qu'une valeur a ete ignoree mais cela n'empeche pas la suite du programme.

    Je cherche donc a definir uniquement une fois mes element dont voici un exemple de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #define ERR_NO_PORT_HANDLE (-2)
    #define ERR_CREATE_IP_HEADER (-3)
    #define ERR_CREATE_UDP_PORT (-4)
    #define ERR__NO_HANDLE	(-5)
    #define ERR_NOT_IN_RANGE (-6)
    #define ERR_....
    afin de les inclures dans une liste ou il me suffira de donner le numero apres pour que celle ci me retourne le descriptif.

    Suis-je plus clair?

  4. #4
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut
    Citation Envoyé par rikau2
    Je cherche donc a definir uniquement une fois mes element dont voici un exemple de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #define ERR_NO_PORT_HANDLE (-2)
    #define ERR_CREATE_IP_HEADER (-3)
    #define ERR_CREATE_UDP_PORT (-4)
    #define ERR__NO_HANDLE	(-5)
    #define ERR_NOT_IN_RANGE (-6)
    #define ERR_....
    afin de les inclures dans une liste ou il me suffira de donner le numero apres pour que celle ci me retourne le descriptif.

    Suis-je plus clair?
    Bouh c'est pas beau

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Une solution parmi tant d'autres :
    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
    enum ErrorType
    {
        ERR_NO_PORT_HANDLE   = -2,
        ERR_CREATE_IP_HEADER = -3,
        ...
    };
     
    inline const char* GetErrorDesc(ErrorType Error)
    {
        switch (Error)
        {
            case ERR_NO_PORT_HANDLE :   return "No port handle";
            case ERR_CREATE_IP_HEADER : return "Create IP header";
            ...
            default : return "Unknown error";
        }
    }

  6. #6
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Citation Envoyé par befalimpertinent
    Bouh c'est pas beau
    Ok comment faire autrement? Les valeurs n'existent pas, il me faut un status de retour de la fonction, et non pas une interpretation directement par la classe, c'est ailleurs dans le programme que je gere les "erreurs". Ce que j'entends par erreur et du type: value not in the range, etc... sachant qu'une des dll que j'execute me retourne deja des valeurs int de status.... qui indiquent l'erreur.
    Je cherche donc a faire quasi a l'identique afin que les personnes travaillant avec la precedente dll se retrouve avec un environement identique. (je n'ai pas acces au code source de la dll)

    Donc?????

  7. #7
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut
    Citation Envoyé par rikau2
    Ok comment faire autrement? Les valeurs n'existent pas, il me faut un status de retour de la fonction, et non pas une interpretation directement par la classe, c'est ailleurs dans le programme que je gere les "erreurs". Ce que j'entends par erreur et du type: value not in the range, etc... sachant qu'une des dll que j'execute me retourne deja des valeurs int de status.... qui indiques l'erreur.
    Je cherche donc a faire quasi a l'identique afin que les personnes travaillant avec la precedente dll se retrouve avec un environement identique. (je n'ai pas acces au code source de la dll)

    Donc?????
    Désolé je suis allergique aux #define .
    La solution de Laurent semble la mieux adaptée

  8. #8
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut
    Salut,
    Si tu tiens à gérer toi même les exceptions (comme Alp je te recommanderai plutôt ceux déjà existants) peut être que la manière la plus "propre" est d'utiliser le pattern singleton. Tu auras alors une seule instance de la classe dans tout ton programme.
    Certes c'est un peu plus long à mettre en place mais tes données seront encapsuler correctement.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/11/2013, 09h52
  2. Réponses: 1
    Dernier message: 20/07/2006, 15h42
  3. erreur creation de table firebird
    Par BigNoze dans le forum Bases de données
    Réponses: 9
    Dernier message: 15/05/2006, 18h44
  4. Creation de table multi base
    Par baboune dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/02/2004, 09h23
  5. Creation de table, caractère non reconnu
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/02/2004, 13h28

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