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 :

BCB XE2 problème de débordement sur long double


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 24
    Points : 19
    Points
    19
    Par défaut BCB XE2 problème de débordement sur long double
    Bonjour,
    avec BCB XE2, lorsque je lance plusieurs fois d'affilée (5/6 fois) le code suivant, j'ai une exception EInvalidOp non interceptée par le catch(...) qui est lancée.
    Avec BCB 2010, je n'ai pas ce problème.
    Pour tester, vous pouvez simplement créer un projet nouveau VCL et mettre un bouton sur la fiche qui exécute ce code !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    		try {
    			long double d=1000000.0;
    			int n=0;
    			while (++n<100000)
    				d+=d;
    		}
    		catch(...) {}
    Je ne vois pas où est le problème. Et en plus, j'aimerais intercepter l'exception au bon endroit, pas dans Application->OnException !
    Une idée ?

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Cela ressemble à bug de la version beta ça !
    Au tout débug de la XE2, selon les options BPL et RTL dynamique cela ne capturait pas les exceptions

    essaye un catch dédié


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    catch(const EInvalidOp &eio) 
    {
      ShowMessage(eio->Message);
    }
    catch(const Exception &e) 
    {
      ShowMessage(e->ClassName());
    }
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 24
    Points : 19
    Points
    19
    Par défaut merci pour ta réponse
    ce qui m'étonne le plus, c'est que le problème n'intervient qu'après avoir lancé 5/6 fois le programme. Au début, j'ai crû que j'avais un mauvais bug quelque part (mémoire libérée 2 fois), mais je suis reparti sur un projet vierge avec uniquement ce bout de code, et le problème était toujours là. Donc ce n'est pas moi. Mais pourquoi 4/5 fois une exception overflow classique puis une fois EInvalidOp ?... J'ai bien sûr essayé d'intercepter explicitement les exceptions en question, sans succès. Je vais bientôt passer sur XE3. J'espère que le problème aura disparu...

Discussions similaires

  1. BCB XE2 Problème de overflow sur long double
    Par Metrica dans le forum C++
    Réponses: 3
    Dernier message: 12/11/2012, 09h03
  2. problème d'arrondi sur un Double
    Par Gordon Freeman dans le forum Général Java
    Réponses: 2
    Dernier message: 23/06/2010, 10h35
  3. Problème avec opération sur les double
    Par luimême dans le forum C#
    Réponses: 2
    Dernier message: 17/04/2008, 10h19
  4. Problème de justification sur longs documents
    Par flob31 dans le forum Mise en forme
    Réponses: 9
    Dernier message: 11/06/2007, 22h35

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