Я начал играть с boost :: threads, но я как-то застрял с этой проблемой:
Я не понимаю, почему эта программа падает, как только выдается исключение, потому что я пытаюсь поймать его в потоке.Я думал, что будет возможно работать с исключениями, если обработка происходит в том же потоке, что и бросание?
#include <boost/thread.hpp>
#include <exception>
using namespace std;
void doWork();
void thrower();
int main( int argc, char** argv ){
boost::thread worker(doWork);
worker.join();
return 0;
}
void doWork(){
try{
thrower();
}
catch( const exception &e ){
//handle exception
}
}
void thrower(){
// program terminates as soon as the exception is thrown
throw exception();
}
Дополнительная информация:
* Использование MinGW32
* Boost v.1.44
* Динамическое связывание с многопоточной отладочной dll Версия потока lib