考虑以下C ++程序
struct str
{
int mem;
str()
try
:mem(0)
{
throw 0;
}
catch(...)
{
}
};
int main()
{
str inst;
}
catch块工作,即控件到达它,然后程序崩溃。我无法理解它有什么问题。
答案 0 :(得分:17)
一旦控件到达构造函数的function-try-block的catch块的末尾,就会自动重新抛出异常。因为你没有在main()中进一步捕获它,所以调用了terminate()。 这是一个有趣的阅读:http://www.drdobbs.com/184401316