功能尝试阻止常规功能

void function_with_try_block() 
try
{
    // try block body
} 
catch (...) 
{ 
    // catch block body
}

这相当于

void function_with_try_block() 
{
    try
    {
        // try block body
    } 
    catch (...) 
    { 
        // catch block body
    }
}

请注意,对于构造函数和析构函数,行为是不同的,因为 catch 块无论如何都会重新抛出异常(如果 catch 块体中没有其他抛出,则捕获一个异常)。

函数 main 被允许具有与任何其他函数一样的函数 try 块,但是 main 的函数 try 块将不会捕获在构造非局部静态变量或破坏任何静态变量期间发生的异常。相反,std::terminate 被称为。