void fun()
{
try
{
cout<<"除零try"<<endl;
int zero = 0;
int f=1/zero;
}
catch(int )
{
}
}
int main(int argc, char* argv[])
{
try //如果沒有異常,則跳過後面的所有catch語句塊
{
fun();
}
catch(...) //捕獲所有異常,
{
cout<<"主函數調用";
//throw; 這個捕獲沒有處理,可以傳給外層或者下一級進行處理。
}
}
【點評】內層函數,沒有捕獲到異常,則自動調用外層的catch捕獲異常。另外throw可拋出類型或者參數,比如class a;throw a;
string s = "sss", throw s; 但是在catch中必須是相同的類型或引用才能接收。