功能嘗試阻止常規功能
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
被稱為。