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++Builder Discussion :

Try qui bugg au lieu d'aller dans le catch, en C++, sous builder 4


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Try qui bugg au lieu d'aller dans le catch, en C++, sous builder 4
    Salut à tous

    Comme je vous l'ai dis je suis dans un code C++ avec builder 4 et malheureusement j'ai un try qui bugg au lieu d'aller dans le catch
    Mon algo tente d'insérer un élément d'une stringgrid dans un tableau de double. Si cela ne fonctionne pas c'est que les éléments de ma grille ne sont pas tous de type double et là le catch doit entrer en action

    Le problème est que dès que le passage de la stringgrid au tableau ne fonctionne pas mon code bugg et je dois continuer la procédure en pas à pas détaillé pour rentrer dans le catch. Que faire pour eviter cette interruption et passer directement dans le catch?

    voici mon algo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     [i]try{
                 for (int i=1; i<nb_indiv;i++){
     
                      tab[i]=StrToFloat(grille->Cells[indice_col]);
                 }
                 if(var=true){ShowMessage("Variable quantitative");}
    }
     
    catch(...)  {
                    // Gestion de l'ensemble des exceptions C++
                    ShowMessage("Variable qualitative");
                    var=false;
    }

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Essai de mettre le try/catch à l'intérieur de ta boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for (int i=1; i<nb_indiv; i++)
    {
        try
        {
            tab[i] = StrToFloat(grille->Cells[indice_col]);
        }
        catch (EConvertError &E)
        {   // La conversion n'a pas fonctionné
            tab[i] = 0;
        }
    }
    En passant, utilise les balises CODE (bouton #) pour ton code.
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Même à l'intérieur de ma boucle ça ne fonctionne pas.

    J'y avais bien pensé mais ca me pose le même problème, il me renvoit le message d'erreur disant qu'il ne peut pas convertir une chaîne en réel et ensuite il passe dans le catch.

  4. #4
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour,
    tu dois indique à l'IDE que c'est ton application qui gère les exceptions
    de plus il n'est pas indiquer de mettre catch de ce type (...)
    il est préférable d'utiliser les types d'exception de la VCL
    a savoir la classe EException
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    try{
                 for (int i=1; i<nb_indiv;i++){
     
                      tab[i]=StrToFloat(grille->Cells[indice_col]);
                 }
                 if(var=true){ShowMessage("Variable quantitative");}
    }
     
    catch(EException &E)  {
                    // Gestion de l'ensemble des exceptions C++
                    ShowMessage(E.Message);
                    var=false;
    }
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci, mais ça ne fonctionne pas non plus, cette fois ca ne veut pas compiler et je ne vois pas pourquoi...

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Si tu es en mode debug c'est tout à fait normal que tu recoive le message d'erreur avant d'entrer dans le catch, c'est fait pour...

    Petite remarque tu as un bout de code qui fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(var=true){ShowMessage("Variable quantitative");}
    attention au = et au ==
    Neilos

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Non je ne suis pas en mode debug en fait... et je n'ai toujours pas trouvé de solution...

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Je ne vois pas d'autre explication, tu lances bien ton programme depuis builder ?
    Neilos

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    oui je l'execute mais je ne suis pas en pas à pas détaillé

  10. #10
    Membre averti Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Points : 315
    Points
    315
    Par défaut
    Oui mais même si tu n'es pas en pas à pas, tu compile avec les option de debug.
    Soit peux les enlever en mettant en version finale dans les propriétés du projet, soit si tu executes ton programme en dehors de borland, tu n'auras pas de message d'avertissement.
    Boubou from The SpAcE GaLaXy....
    AhAhAhAhAh

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Désolée ça ne fait pas très longtemps que je fais de la programmation objet. Comment je dois faire pour l'executer en dehors de Borland ou tout simplement pour créer un executable?

  12. #12
    Membre averti Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Points : 315
    Points
    315
    Par défaut
    Il n'y a pas à être désolé on est tous passé par là
    à partir du moment ou tu compiles ton projet, un executable est créer, si tu veux voir ce que cela donne lorsque ton prjet sera fini, l'executable est généré dans le dossier ou tu as sauvegardé ton projet. execute le depuis l'explorateur windows et non plus par Borland et tu verras que les messages d'erreur ne s'afficheront plus.
    il est normal que losque tu le lances depuis Borland les messages s'affichent car c'est toi le developpeur, tu doit voir quelgenre exception est générée
    Boubou from The SpAcE GaLaXy....
    AhAhAhAhAh

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Ok merci, c'est bien ça le problème

  14. #14
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Si tout fonctionne et que tu es satisfait des réponses tu peux cliquer sur pour indiquer que le problème est réglé
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

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

Discussions similaires

  1. fonction RECHERCHEV dans un tableau trié qui fait des siennes
    Par christophertux dans le forum Conception
    Réponses: 2
    Dernier message: 05/10/2010, 11h38
  2. Réponses: 3
    Dernier message: 18/08/2006, 12h11
  3. Réponses: 1
    Dernier message: 07/01/2006, 23h33
  4. Variable qui évolue en fonction des choix dans formulaire
    Par stefou007 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/09/2005, 22h40
  5. Un tri qui me plait pas...
    Par szdavid dans le forum Langage SQL
    Réponses: 5
    Dernier message: 24/05/2004, 11h07

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