捕获从线程(C ++)调用的异常

时间:2019-01-09 07:33:02

标签: c++ multithreading

我正在尝试捕获从线程引发的异常。当直接调用函数“ 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

预先感谢:)

0 个答案:

没有答案