私は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 に対する動的リンク スレッド ライブラリのバージョン