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

Arm*_*yan 9 c++ exception-handling

考虑以下C++程序

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

int main()
{
       str inst;
}
Run Code Online (Sandbox Code Playgroud)

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

ust*_*sta 17

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