Interception d'exceptions non traitées
Bonjour,
Je suis en train de me préparer un lot de classes utilitaire pouvant être utilisé dans bon nombre de mes programmes de traitement.
Pour infos, je développes actuellement en C++ sous Windows avec GCC et MingW sous Eclipse. J'utilise les librairies STL et BOOST.
J'aimerai que mes programmes aient tous une gestion d'exception à la base et suffisamment large pour tout attraper. Et vu que je suis fainéant, je n'ai pas envie de ré-écrire à chaque programme le code avec tous les catchs.
Pour cela, j'aimerai créer une classe qui me gère les fonctions basique de mes applications, dont la gestion des exceptions.
Voici enfin ma question.
Est-il possible que cette classe intercepte toutes les exceptions non traitées arrivant au niveau du "main" ?
Sinon j'avais pensé à des macros contenant le "try" et les différents "catch". Mais on m'a dis dernièrement que les macros, c'était MAL.
Existe t'il un autre moyen pour réaliser ce genre de chose ? Peut être avec BOOST ?
Merci d'avance
Les intercepter, oui, mais après ??
Salut,
intercepter les exceptions uniquement dans main n'est pas un problème:
Fais dériver tes exceptions de std::exception (la plus générale des exceptions de la STL) ou de l'un des exceptions plus spécialisée, et contente toi d'un
Code:
1 2 3 4 5 6 7 8 9 10 11
|
int main()
{
try
{
}
catch (std::exception & e)
{
std::cout<<e.what();
}
} |
;)
Le problème vient du fait qu'une exception, ça peut se gérer autrement qu'en affichant le message de l'exception, car, une exception est sensée "fournir le contexte" permettant de déterminer ce qui a "foiré" et ... pourquoi...
De plus, toutes les exceptions n'ont pas pour objectif de faire quitter l'application: certaines ne demandent parfois que "pas grand chose" pour permettre au système de retrouver un état cohérent... et ce serait bête de ne pas profiter de l'occasion qui t'est donnée de faire ce "pas grand chose" pour pouvoir continuer à travailler ;)
Tu l'auras compris, cette solution représente le "minimum syndical" que tu puisse faire au sujet des exceptions ;)
J'ai écrit, hier, une très longue prose au sujet des exceptions... Peut être tireras tu un quelconque avantage à la lire ;)