absolinux

Sujet : problème d'exception ... qui n'en est pas une ;)
posté par XwZ 10 messages     le  09-10-2007  à  00:58citer
salut,
j'ai un problème d'exception avec la bibliothèque stdexcept, voici mon code :

#include <iostream>
#include <stdexcept>

using namespace std;

void fonction ( const int i ) throw () {
if ( i == 2 ) {
throw Out_Of_Range("Erreur") ;
}
cout << "i est ok" << endl ;
}

int main () {
try {
fonction (2) ;
} catch ( const Out_Of_Range & e ) {
cout << e.what() ;
}
}



et voici le message de compilation :
except.C: In function 'void fonction(int)':
except.C:8: error: 'Out_Of_Range' was not declared in this scope
except.C: In function 'int main()':
except.C:16: error: ISO C++ forbids declaration of 'Out_Of_Range' with no type
except.C:16: error: expected `)' before '&' token
except.C:16: error: expected `{' before '&' token
except.C:16: error: 'e' was not declared in this scope
except.C:16: error: expected `;' before ')' token

_______________________

Gentoo c'est la meilleure ;)
posté par XwZ 10 messages     le  09-10-2007  à  00:59citer
oups ... merci d'avance pour vos réponses :)
_______________________

Gentoo c'est la meilleure ;)
posté par XwZ 10 messages     le  09-10-2007  à  01:10citer
en fait la solution est simple, ce n'est pas Out_Of_Range mais out_of_range tout simplement.
Bonne fin de soirée et/ou bonne nuit ;)
ps : voici le code complet :

#include <iostream>
#include <stdexcept>

using namespace std;

void fonction ( const int i ) throw () {
if ( i == 2 ) {
throw out_of_range("Erreur") ;
}
cout << "i est ok" << endl ;
}

int main () {
try {
fonction (2) ;
} catch ( const out_of_range & e ) {
cout << e.what() ;
}
}


_______________________

Gentoo c'est la meilleure ;)
posté par TrueDD 97 messages     le  09-10-2007  à  01:28citer
trop fatigué moi en ce moment ... [sleep] j'ai tranquillement posté la solution sans m'apercevoir que tu l'avais déjà fait ...


_______________________

Retrouvez-nous sur le canal #absolinux (serveur irc.freenode.net) [smile]




répondre

http://med4treat.top