try multiple catch silencieux
Bonjour à tous,
Je sais pas si je poste au bon endroit, dites moi si je dois déplacer le message. Voici mon problème: j'ai un bloc d'instructions qui peut lever un ensemble d'exceptions qui n'ont pas forcément de relation d'héritage que je souhaiterait catcher, un truc dans ce goût là:
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 26 27 28
|
struct exception1 : std::exception {};
struct exception2 : std::exception {};
struct exception3 : std::exception {};
void une_fonction()
{
//... des instructions
typedef vector<exception1, exception2> exception_pool_1;
try {
//.. des instructions pouvant lever des exceptions de type de exception_pool_1
}
catch(/*une ou plusieurs exceptions de exception_pool_1*/) {
//rien ou un appel compilant pour tout type de pool_1
}
//... des instructions
typedef vector<exception1, exception3> exception_pool_2;
//... des instructions
try {
//.. des instructions pouvant lever des exceptions de type de exception_pool_2
}
catch(/*une ou plusieurs exceptions de exception_pool_2*/) {
//rien ou un appel compilant pour tout type de pool_2
}
} |
Je ne sais pas si c'est possible de faire quelque chose avec boost, je suis tombé sur ce site qui parle en gros du même problème mais ils proposent une solution à base de macro. Dans cette discussion, un gars parle d'une solution à base de boost fusion, mais j'avoue ne pas du tout voir comment faire, si vous avez des idées...