Problem exception runtime_error

Signaler
Messages postés
5
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
16 juillet 2003
-
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
-
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

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
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...
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

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