Bonjour,
Comme le titre l'indique j'aimerai faire de la propagation du style :
rien de bien méchant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 try { // traitement } catch(const std::Exception& e) { // traitement d'erreur local throw e; }
Par contre je me pose la question dans le cas où il y a plusieurs catch dont un qui hérite de l'autre ou qui pourrait catcher l'autre je m'explique
Prenons le cas où Exception_A hérite de Exception.
Alors voilà si mon traitement normal envoie un exception de type Exception_A donc je la re-"throw".... mais sera-t-elle "catchée" par le bloc juste en dessous.... et je me pose la même question pour le dernier catch bien sur.
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 try { // traitement normal } catch(const Exception_A& e) { // traitement d'erreur local throw e; } catch(const std::Exception& e) { // traitement d'erreur local throw e; } catch(...) { // traitement d'erreur local throw std::Exception("erreur inconnue"); }
En gros si je fais un simple :et que je "catche" une "std::Exception" et que je la re-"throw" sera-t-elle "catché" juste en dessous.
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 try { // traitement normal } catch(const std::Exception& e) { // traitement d'erreur local throw e; } catch(...) { // traitement d'erreur local throw std::Exception("erreur inconnue"); }
Merci d'avance.
Partager