Exception dans le constructeur
Bonjour,
j'ai beaucoup de mal � comprendre l'interet de lever une exception dans un constructeur comme c'est expliqu� dans la faq.
En effet, le fait de lever une exception va terminer le programme, non ?
Par exemple, supposons un un truc du style dans un constructeur o� on d�sire ouvrir un fichier pour lire son contenu :
Code:
1 2 3 4 5 6 7 8 9 10
| try
{
if(fopen("un fichier qui n'existe pas", "rb")
throw std::string( "fichier inexistant" );
}
catch ( const std::string & Msg )
{
std::cerr << Msg;
throw;
} |
Bon si je mets pas le throw dans le catch, je ne termine pas mon programme certes, mais qu'est ce que je fais de mon objet ?
Et les exceptions dans un process 7/7 24/24 ? On ne va quand m�me pas l'arreter ? A mon avis (tant que je comprends pas plus ce m�canisme) il vaut mieux "tester avec des if" pour ne pas risquer l'interruption du prog, non ?
Merci de m'�clairer la-dessus.