Durée de vie d'une exception
Bonsoir,
J'ai le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| int main(int argc, char * argv [])
{
try
{
if(bla bla)
throw std::exception("bla bla");
}
catch(std::exception & e)
{
// gestion des erreurs
}
return EXIT_SUCCESS;
} |
Cela marche bien mais je me pose une question au sujet de la durée de vie de l'exception
Dès que l'exception est levée, on quitte le bloc try et donc, normallement l'objet std::exception est détruit.
Comment se fait t'il alors qu'il existe encore dans le bloc catch et qu'il soit valide.
- Coup de chance
- c'est normal et j'ai rien compris
- autre chose
Est ce que le mieux ce ne serait pas d'écrire
Code:
throw new std::exception("bla bla");
et
Code:
1 2 3 4 5
| catch(std::exception * e)
{
// gestion des erreurs
delete e;
} |