gpt4 book ai didi

c++ - main() 会捕获线程抛出的异常吗?

转载 作者:IT老高 更新时间:2023-10-28 12:38:35 29 4
gpt4 key购买 nike

我有一个非常大的应用程序,它可以动态加载共享对象并在共享对象中执行代码。作为预防措施,我对 main 中的几乎所有内容都进行了 try/catch。我为 3 件事创建了一个捕获:myException(内部异常)、std::exception...(捕获所有异常)。

作为共享对象执行的一部分,会创建许多 pthreads。当线程抛出异常时,它不会被 main 捕获。这是标准行为吗?如何捕获所有异常,无论它们是从哪个线程抛出的?

最佳答案

Will main() catch exceptions thrown from threads?

没有

When a thread throws an exception, it is not caught by main. Is this the standard behavior?

是的,这是标准行为。

捕获源自线程 X 的异常, 你必须有 try - catch线程中的子句X (例如,围绕线程函数中的所有内容,类似于您在 main 中所做的)。

有关相关问题,请参阅 How can I propagate exceptions between threads?

关于c++ - main() 会捕获线程抛出的异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7730502/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com