首先,我在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