Bonsoir,

J'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
   throw new std::exception("bla bla");
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
   catch(std::exception * e)
   {
      // gestion des erreurs
      delete e;
   }