Bonjour,
Je teste actuellement une application sous Windows et j'ai un petit problème sur ce bout de code :
catch(...) étant censé, il me semble, pouvoir rattraper toutes les exceptions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 try { std::cerr << "debut" << std::endl; std::cerr.flush(); boost::filesystem3::copy( path, boost::filesystem3::path("temp_PDF") / path.filename() ); std::cerr << "fin" << std::endl; std::cerr.flush(); } catch ( boost::filesystem3::filesystem_error e ) { std::cerr << "except" << std::endl; std::cerr.flush(); } catch ( ... ) { std::cerr << "erreur 1" << std::endl; std::cerr.flush(); }
Ce que je n'arrive pas à m'expliquer, c'est que la ligne :
lance une exception qui n'est pas attrapée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part boost::filesystem3::copy( path, boost::filesystem3::path("temp_PDF") / path.filename() );
Voici ce que j'ai à l'écran :
debut
terminate after throwing an instance of 'boost::filesystem::filesystem_error'
what() : [...]
This application has requested the Runtime to terminate it in a unusual way.
Please contact the application's support team for more information.
Je ne sais pas si c'est lié mais je ne peux pas lancer mon application deux fois de suite dans la même console DOS ( l'application retourne directement sans rien faire).
J'ai aussi, quand l'exception n'est pas lancée, un system() qui n'exécute pas la commande passée en argument.
Est-ce que vous auriez une idée ?
Partager