功能尝试块。一个有趣的例子

时间:2010-10-08 08:33:11

标签: c++ exception-handling

考虑以下C ++程序

struct str
{
       int mem;
       str()
       try
          :mem(0)
       {
               throw 0;
       }
       catch(...)
       {
       }
};

int main()
{
       str inst;
}

catch块工作,即控件到达它,然后程序崩溃。我无法理解它有什么问题。

1 个答案:

答案 0 :(得分:17)

一旦控件到达构造函数的function-try-block的catch块的末尾,就会自动重新抛出异常。因为你没有在main()中进一步捕获它,所以调用了terminate()。 这是一个有趣的阅读:http://www.drdobbs.com/184401316