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.
(le deuxième catch)
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; }
Ci-dessous, la fonction qui lance l'exception en cas d'erreur de saisie..
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.
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'espère avoir été assez clair et que quelqu'un pourra m'aider.
Partager