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

Langage C++ Discussion :

Question à propos de la STL et des exceptions


Sujet :

Langage C++

  1. #1
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut Question à propos de la STL et des exceptions
    Bonsoir,

    Je suis entrain de travailler sur mon premier vrai soft C++ et je voudrais prendre de bonnes habitudes au niveau de la gestion des exceptions
    notamment.

    C'est pourquoi je voudrais savoir si les deux codes ci-dessous sont équivalents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try {
     
    }catch(...) {
     
    }
    est équivalent à celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try {
     
    }catch(std::exception& e) {
     
    }
    Merci d'avance.
    Viva la viva... en el chorizo de la corida de leon.... (cette phrase n'a aucun sens je sais )

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Non, le premier récupère toute exception et permet un traitement générique mais pas de traitement de l'exception (tu n'as pas d'objet).

    Le second récupère les erreurs hérité de std::exception et permet de les traiter en tant que tel.

    Cependant std::exception ne permet pas de faire grand chose de plus que si tu avais utiliser le premier cas. A part récupèrer une chaine de caractère C décrivant l'exception.

  3. #3
    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 : 49
    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
    Points : 16 213
    Points
    16 213
    Par défaut
    Non, ils ne sont pas équivalents :
    - catch (...) attrape toutes les exceptions, même si on a lancé un int, ou une classe ne dérivant pas de std::exception. Par contre, s'il permet de savoir qu'il y a eu exception, il ne permet pas de savoir quoi ce ce soit à son sujet. C'est généralement à placer au niveau du main, pour afficher un message d'excuse à l’utilisateur avant d'arrêter brutalement le programme.
    - catch(std::exception &e) ne permet d'attraper que les exceptions d'une classe dérivant de std::exception, et permet de faire des chose avec (par exemple, appeler la fonction membre what.
    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.

  4. #4
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Merci pour vos explications simple et clair
    Viva la viva... en el chorizo de la corida de leon.... (cette phrase n'a aucun sens je sais )

  5. #5
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    Apres le meilleur moyen de gerer ca et d'ecrire du code strongly safe

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/06/2015, 11h17
  2. Réponses: 9
    Dernier message: 23/07/2014, 13h11
  3. Question à propos des exceptions
    Par L'aigle de Carthage dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 05/01/2013, 23h25
  4. Réponses: 21
    Dernier message: 09/02/2008, 23h09
  5. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 14h03

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