Problem exception runtime_error

cs_fafouet Messages postés 5 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 16 juillet 2003 - 9 juil. 2003 à 17:02
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 - 9 juil. 2003 à 17:32
je veux developper un petit exemple qui doit provoquer une runtime_error
je n'arrive pas a la produire je ne sais pas trop comment m'en servir
voici mon petite exemple a travers lekel j'affecte via un constructeur(presence obligatoire) un unsigned long a un long, il y a normalement une erreur qui doit etre leve overflow_error ! l'affichage me montre bien que l'affecttion ne se fait pas, ca m'affiche -1 ;
voici le code source :

#include <stdexcept>
#include <float.h>
#include <limits.h>

using namespace std;

long uMaxLong = ULONG_MAX;

class RUE : private runtime_error
{
public:
RUE(long numberToAdd) : runtime_error ("error d'overflow"){
result = uMaxLong ;
cout <<"constructor :"<<result <<"\n";};
protected :
long result;
}

void main(void)
{
try {
RUE testAddition(uMaxLong)
cout <<dbl <<"\n";
}
catch (runtime_error){std::cout << "plantage";}
}

merci de vos explications et de vos solutions

fafouet :big)

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 juil. 2003 à 17:08
Le C n'est pas du VB, si tu viens du VB il faut commencer par tout oublier et repartir de zero.
Pourquoi il y aurait une erreur de mettre 32 bits dans 32 bits ???
unsigned ou sugned differe seulement par l'interpretation qu'on en fait mais c'est toujours 32 bits.
BruNews, ciao...
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
9 juil. 2003 à 17:32
Si tu veux que ton exception soit soulevée, il faut la lancer:

class RUE :
{
public:
RUE()
{
throw runtime_error ("error d'overflow");
}

}

Ton bloc catch() sera alors exécuté.

Kaid - kaid.fr.st
0
Rejoignez-nous