【发布时间】:2021-09-21 14:31:13
【问题描述】:
对于以下代码:
#include <iostream>
struct Str
{
Str() { throw 100; }
};
class Cla
{
public:
Cla()
try : m_mem() { }
catch(...)
{
std::cout << "Catch block is called"<< std::endl;
}
private:
Str m_mem;
};
int main()
{
Cla obj;
}
我试图在 catch 块中捕获异常。但是在catch块运行之后,系统仍然调用std::terminate来终止程序。我没有在catch块中重新抛出异常,你能告诉我为什么系统崩溃了吗?谢谢!
这是对编译器资源管理器的测试:https://godbolt.org/z/74sTcxrY4
【问题讨论】:
-
函数try-catch块的结束自动重新抛出任何异常
标签: c++