首先,我在cplusplus.com發現以下報價:捕捉與多個參數
美中不足的格式類似於常規的功能總是至少有一個參數。
但我想這:
try
{
int kk3,k4;
kk3=3;
k4=2;
throw (kk3,"hello");
}
catch (int param)
{
cout << "int exception"<<param<<endl;
}
catch (int param,string s)
{
cout<<param<<s;
}
catch (char param)
{
cout << "char exception";
}
catch (...)
{
cout << "default exception";
}
編譯器不抱怨用括號和多個參數拋出。但它實際上抱怨有多個參數,儘管參考文獻說了什麼。我很困惑。 try
和catch
是否允許這種多重性?如果我想拋出一個包含多個變量的異常(包含或不包含相同類型),該怎麼辦?
上逗號運算符閱讀起來。你不會拋出'(kk3,「hello」)',你拋出''你好'''。 – delnan 2010-10-23 20:15:14
所以它只有一個參數在兩個? – 2010-10-23 20:17:17