以下程序始终输出“错误:双 10.2”。
我不懂为什么。根据我的说法,如果 fun1() 只允许抛出 int,则程序应该 (1) 崩溃 (2) 或将 double 更改为 int 然后抛出。这意味着,输出应该是“Error:int 10”。然而,情况并非如此。谁能解释一下??
void fun1() throw (int)
{
cout<<"3";
throw 10.2;
cout<<"4";
}
int main()
{
try { fun1(); }
catch(int i) { cout<<"Error:int" <<i <<endl;}
catch(double i) { cout << "Error:double" << i << endl; }
cout << endl;
return 0;
}