void function_with_try_block() try { // 尝试阻止身体 } catch (...) { // 抓块体 }
相当于
void function_with_try_block() { try { // 尝试阻止身体 } catch (...) { // 抓块体 } }
请注意,对于构造函数和析构函数,行为是不同的,因为catch块无论如何都会重新抛出异常(如果catch块主体中没有其他抛出,则捕获一个异常)。
该函数main可以像其他函数一样具有一个try块,但是它main的try块不会捕获在构造非局部静态变量或破坏任何静态变量期间发生的异常。相反,std::terminate被称为。