Bonjour,
Lors de tests sous Visual Studio 2005, j'ai remarqué qu'en cas d'exception C++ non-gérée, le programme est tué avant qu'aucun destructeur soit appelé.
Est-ce normal ? Que dit la norme à ce sujet ?
Version imprimable
Bonjour,
Lors de tests sous Visual Studio 2005, j'ai remarqué qu'en cas d'exception C++ non-gérée, le programme est tué avant qu'aucun destructeur soit appelé.
Est-ce normal ? Que dit la norme à ce sujet ?
Salut,
Je dirais que c'est normal, c'est terminate() qui est appelé, d'après la norme (15.5.1), lorsqu'aucun 'handler' n'est trouvé pour une exception lancée, et :
MAT.Citation:
Envoyé par 15.5.1.2
A priori Scott Meyers dans more effective c++ (petite note de la page 50) dit, qu'en qu'à d'exception non gérée lancée avant la fin d'un scope, que les objets alloués automatiquement dans ce scope ne verront pas forcément leur destructeur appelé.
Merci.
Je note donc que c'est implementation-defined.