Multithreading 异常跨线程传播?

Multithreading 异常跨线程传播?,multithreading,exception-handling,c++11,Multithreading,Exception Handling,C++11,关于 C++11添加了将异常整理到不同线程的功能(使用std::exception_ptr)并恢复其传播 我想知道这样的传播是否是自动的,也就是说:如果我无法在线程中处理异常,它是否会在父线程中自动传播 我有点怀疑它(或者它必须以某种方式显式地等待join),但我还不熟悉C++11。值得注意的是,我认为在std::future的情况下,它可以自动存储异常。对于线程,传播不是自动的。如果一个线程抛出,并且该异常没有被捕获,那么不管发生什么情况,程序都会终止 future和shared\u futu

关于

C++11添加了将异常整理到不同线程的功能(使用
std::exception_ptr
)并恢复其传播

我想知道这样的传播是否是自动的,也就是说:如果我无法在线程中处理异常,它是否会在父线程中自动传播


我有点怀疑它(或者它必须以某种方式显式地等待
join
),但我还不熟悉C++11。值得注意的是,我认为在
std::future
的情况下,它可以自动存储异常。

对于
线程
,传播不是自动的。如果一个线程抛出,并且该异常没有被捕获,那么不管发生什么情况,程序都会终止

future
shared\u future
将在子线程中存储未捕获的异常。当调用
get
时,该异常会自动传播