Salut à tous,

J'aimerais pouvoir relancer une exception pour réitérer une saisie dans un bloc catch (je ne sais pas si c'est possible mais ça me faciliterais grandement la tâche).
Ci-dessous la fonction dans laquelle j'aimerais relancer l'exception pour réitérer la saisie.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
istream& operator>> (istream& flux, Timing &P)
{
	char pause = 0;
	char *J = new char[50];
	Temps Heure;
	Temps Duree;
 
	cout << "Jour: ";
	flux >> J;
 
 
	try
	{
		P.setJour(J);
	}
	catch(InvalidJourException const &i)
	{
		do
		{
			cout << "Jour: ";
			flux >> J;
			if(strcmp(J, "Lundi") != 0 && strcmp(J, "Mardi") != 0 && strcmp(J, "Mercredi") != 0 && strcmp(J, "Jeudi") != 0 && strcmp(J, "Vendredi") != 0 && strcmp(J, "Samedi") != 0 && strcmp(J, "Dimanche") != 0)
				cout << "Saisie invalide" << endl;
		} while(strcmp(J, "Lundi") != 0 && strcmp(J, "Mardi") != 0 && strcmp(J, "Mercredi") != 0 && strcmp(J, "Jeudi") != 0 && strcmp(J, "Vendredi") != 0 && strcmp(J, "Samedi") != 0 && strcmp(J, "Dimanche") != 0);
		P.setJour(J);
	}
 
	try
	{
		flux >> Heure;
		flux >> Duree;
	}
	catch(InvalidTempsException const &t)
	{
		flux >> Heure;
		flux >> Duree;
	}
	P.setHeure(Heure);
	P.setDuree(Duree);
 
 
	return flux;
}
(le deuxième catch)

Ci-dessous, la fonction qui lance l'exception en cas d'erreur de saisie..

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
istream& operator>> (istream& flux, Temps &t)
{
	int h,m;
 
	cout << "Heure: ";
	flux >> h;
	if(h > 23)
		throw InvalidTempsException("Saisie Invalide");
 
	cout << "Minute: ";
	flux >> m;
	if(m > 59)
		throw InvalidTempsException("Saisie Invalide");
 
	t.setHeure(h);
	t.setMinute(m);
 
	return flux;
}
J'aimerais donc que dans le catch je puisse faire une sorte de boucle qui relancerais l'exception et qui me permettrais de saisir à nouveau mes valeurs pour ne pas devoir refaire mes conditions dans le catch.
J'espère avoir été assez clair et que quelqu'un pourra m'aider.