【发布时间】:2010-10-23 20:13:07
【问题描述】:
首先我在cplusplus.com 中找到以下引用:
catch 格式类似于始终具有至少一个参数的常规函数。
但我试过这个:
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";
}
编译器不会抱怨带有大括号和多个参数的 throw。但它实际上抱怨带有多个参数的捕获,尽管参考说了什么。我很困惑。 try 和 catch 是否允许这种多重性?如果我想抛出一个异常,其中包含多个具有或不具有相同类型的变量。
【问题讨论】:
-
阅读逗号运算符。你不扔
(kk3, "hello"),你扔"hello"。 -
所以两者都只有一个论点?