Pb : Exception / déroutements / try, throw, catch
salut, j'ai un prob av mon code, je veux lancer une exception si une version entrée n'est pas numérique ou contient autre chose qu'un point (exemple : bon : 2.0.3 pas bon : 3,m). j'ai un fichier version.h version.cc et mon main :
Dans le main :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #include <stdlib.h>
#include <iostream>
#include <string.h>
#include "version.h"
using namespace std;
int main()
{
string s1, s2;
cout << "Entrez les deux versions : " << endl;
cin >> s1 >> s2;
try
{
Version v1(s1);
Version v2(s2);
}
catch(string exception)
{
cout << "Erreur : " << exception << endl;
system("PAUSE");
return 0;
}
... |
Dans le version.h :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
...
public :
Version(string v)
{
for(int k = 0; k < v.length() ; k++)
if(v[k] != '.' && v[k] < 0 && v[k] > 9)
{
version="";
throw ("erreur");
}
};
... |
L'erreur set toujours la même quoi que je fasse :
v1 et v2 ne sont pas déclarés dans le main (selon le compilateur) !
Merci de votre aide!