我正在尝试捕获从线程引发的异常。当直接调用函数“ foo”时,将捕获std :: string异常,但是如何从std :: thread调用“ foo”时如何捕获。我正在使用Linux机器进行编程
int foo()
{
throw "inside foo";
}
int main()
{
try
{
std::thread t1 = std::thread(foo);
}
catch(std::string e)
{
std::cout << "Caught";
}
catch(const char* e)
{
std::cout << "Caught";
}
}
编译命令:g ++ -std = c ++ 11 tmp.cpp -pthread -lrt -g -o tmp
预先感谢:)