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 :

les Exception avec c++


Sujet :

C++

  1. #1
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Par défaut les Exception avec c++
    Bonjour

    je développez un petit programme pour faire quelque chose bien évidemment ,et au cour des test j’ai eu un grand problème une erreur fatal !!!!!! et c Windows qui a fermé mon applicatif,
    pour régler ce problème j’ai protégé le code avec un try – except …catch(…) mais ça na rien donné j’été obligé donc cherché moi même cette erreur fatal.
    Après une analyse détaillé du code j’ai trouvé la petite bête a l’origine de cet erreur fatal :
    Il s’agit d’un manque d’attention en effet j’avais une variable de type string s et je fait l’operration suivante
    string tmp=s[i] ; c correcte comme instruction mais le problème c que l’indice i est supérieur a la taille de la chaîne s.

    ok j’ai réglé le problème mais en principe quand j’ai mis le bloc try …expect…catch(…)
    ça aurai du intercepté cette erreur ??????????????
    ou bien ya t il des erreurs non intercepté par le bloc try …except ?
    ou c moi qui a mal utiliser le bloc try… except

    Merci pour Vous

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Il n'y a pas des exceptions pour toutes les erreurs.

  3. #3
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Par défaut
    dans ce cas,comment faire pour Intercepter ces erreurs qui sont grave et qui cause un arrêt total de l’application
    (au moins on intercepte ces exception pour écrire dans la log quelque détails )

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Sous Unix tu peux installer des gestionnaires de signaux.

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Tu apprends à ne pas tomber dans les cas qui font des comportements indéfinis.
    Accessoirement tu peux aussi utiliser une version debug de ta bibliothèque standard qui fera certaines vérifications à l'execution pour t'aider.

    Après y'a aussi des debuggers qui existent justement pour t'aider à trouver la source de tes problèmes.

  6. #6
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Par défaut
    pour est-je avoir quelque example de ces debuggeur dont vous parler
    Merci

  7. #7
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Il y a gdb (GNU debugguer) disponible sous Unix et Windows (directement intégré dans code::blocks).

    Il faut par contre compiler avec l'option -g pour permettre au débuggueur de faire la liaison avec le nom des fonctions que tu as effectivement donnés...

    Tu peux faire des exécution en mode pas à pas, voir le valeur des variables... Pour les erreurs de segmentation, il t'indique en principe la ligne où elles ont eu lieu.

  8. #8
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    -D_GLIBCXX_DEBUG pour activer la version debug de libstdc++

  9. #9
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Par défaut
    juste une question de plus:

    quand on fait un build du projet quelle est la différence entre une release et un debug et quelle sont les option a coché pour creer une release avec code blocks

  10. #10
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 287
    Par défaut
    Accessoirement, attraper ce genre d'erreurs dans un bloc try-catch ne me parrait pas des plus pertinent.
    Quand cela se produit, cela signifie qu'une erreur de programmation a corrompu l'état de l'applicatif en mémoire. Il n'y a rien que l'on puisse faire une fois que cela a commencé.

    Au mieux, commerciallement parlant, on met une jolie fenêtre pour prévenir que l'on va devoir s'arréter. Au mieux, techniquement parlant, on part en core et on analyse le snapshot obtenu avec un débuggueur.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  11. #11
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Luc Hermitte
    Au mieux, techniquement parlant, on part en core
    Ce qui est le comportement par défaut des signaux utilisés pour signaler ces erreurs.

Discussions similaires

  1. Logger toutes les exceptions avec Log4Net
    Par galich dans le forum C#
    Réponses: 1
    Dernier message: 14/01/2014, 17h06
  2. Les exceptions avec CORBA
    Par asari29 dans le forum CORBA
    Réponses: 2
    Dernier message: 30/07/2009, 15h43
  3. probléme avec les exceptions
    Par sofiane44 dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2006, 16h30
  4. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2005, 22h41
  5. [Exceptions] Pb avec les exceptions
    Par joquetino dans le forum Langage
    Réponses: 11
    Dernier message: 22/09/2004, 17h08

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