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 :

Besoin d'une précision pour try/catch, svp


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Besoin d'une précision pour try/catch, svp
    Bonjour à vous et merci de vous pencher sur cette petite interrogation.

    J'aimerai savoir s'il est possible de spécifier le numéro de l'erreur après l'avoir "attraper" par catch? Si oui, comment, svp?

    si vous avez un exemple simple à fournir, je vous en serai très reconnaissant

    J'ai tenté de me renseigner sur le net (merci google) mais tout ce que j'en ai tiré c'est que cela semblait possible... Je reste bredouille quant à la méthode à adopter...

    Merci encore à vous

  2. #2
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Attention tu confonds. La gestion des exceptions en C++ n'est qu'une manière de pouvoir lancer et récupérer des exceptions. C'est le travail du programmeur de définir quand il faut lancer une exception, et de quel type elle doit être.

    Par exemple dans la SL il y a des exceptions prédéfinies qui sont lancées dans le cas de certaines erreurs (par ex. std::bad_alloc).

    Et dans l'exemple standard, le classe de l'exception contient un membre what() qui permet d'avoir une description de l'erreur.

    Plus d'infos sur l'utilisation ICI
    Fiquet
    - FAQ SDL
    - FAQ C++

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Certes, j'ai dû mal m'exprimer, je vais tenter de reprendre en m'efforçant d'être clair

    Supposons justement que pour une fonction pouvant générer des exceptions, je place un try me permettant de gérer (ou lancer, en somme) cette exception. Je la récupère ensuite grâce à la fontion catch (j'ai bien compris pour le reste... ). A partir de là, cette exception devrait (c'est le but de ma question) intrinsèquement posséder un numéro d'erreur (l'équivalent du errno du C, probablement...) et j'aimerai la faire apparaître.

    Merci néanmoins pour cette réponse (je connaissais déjà cette page ^^)

    Quelqu'un auait-il une idée?

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Salut,
    Si tes exceptions sont des class que tu as faites toi même, il suffit de leur rajouter une propriété id...
    Est-ce le cas?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Hélas non, je n'ai pas créer de classe exception pour cela, c'est néanmoins une idée interessante à laquelle je n'avais pas pensé (je garde cette solution sous le coude) Merci Alp pour cette précieuse précision )

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Salut,
    J'ai trouvé ceci dans la faq... Ca peut t'intéresser je pense.

  7. #7
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Et bien tu devrais le faire comme ça normalement avec une classe qui gère tes exceptions et qui, encore mieux, pourrait dériver de la classe std::exception.

    Tu n'aurais même pas besoin de numéro d'erreur, il te suffirait de donner une description à cette erreur c'est encore mieux non? Pourquoi abolument un numéro d'erreur (on est plus en C avec des trucs style GetLastError() et j'en passe...)

    Citation Envoyé par hallek60
    [...]
    je place un try me permettant de gérer (ou lancer, en somme) cette exception. Je la récupère ensuite grâce à la fontion catch (j'ai bien compris pour le reste... ).
    [...]
    Je te corrige encore, juste pour que ce soit clair : lancer (ou déclencher) une exception se fait avec le mot-clé throw (pas try), ensuite le code susceptible d'en lancer une, tu le mets dans try et enfin pour la traiter (style afficher la description, etc.) : catch avec en paramètre le type de l'exception levée.

    A++
    Fiquet
    - FAQ SDL
    - FAQ C++

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    merci beaucoup à tous, je crois que vous avez mis le doigt dessus ! Je vous remercie pour votre gentillesse et votre courtoisie!

    Je pense que vous pouvez mettre ce sujet en résolu, les réponses apportées m'ont aiguillé suffisamment pour continuer tout seul (sans encombre j'espère)

    Merci encore à vous ^^

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    hallek: C'est l'auteur de la question (toi en l'occurence) qui peut mettre le post en résolu. Il y a un bouton (en bas à gauche, il me semble).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    De rien

    Pour le résolu, tu dois le faire toi-même: Bouton en-bas à gauche de ton sujet.

    A+
    Fiquet
    - FAQ SDL
    - FAQ C++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/09/2010, 10h07
  2. Besoin d'une idée pour formater mes données
    Par guidav dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 04/04/2007, 19h49
  3. besoin d'une précision sur le déploiement de fichiers
    Par NicoO_O dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 22/01/2007, 20h08
  4. Réponses: 5
    Dernier message: 10/01/2007, 09h38

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