永发信息网

c++抛出异常时try{}的问题,求助

答案:2  悬赏:0  手机版
解决时间 2021-02-28 02:42
#include
using namespace std;
void test(float a)throw(int)
{

if(a>90)
throw 'A';
else if(a>=60)
throw a;
else if(a>30)
throw 1;
else
throw &a;

}
void main()
{
cout<<"result:\n";
try
{test(99);test(88);test(59);test(21); }
catch(char a)
{
cout<<"pretty good!\n";
}catch(float a)
{cout<<"well done!\n";}
catch(int a)
{cout<<"just so so!\n";}
catch(float *a)
{cout<<"you should work more hard!\n";}
}
为啥只能输出try函数中的第一个函数,而下面的函数都没运行。。。而且
void test(float a)throw(int)中的throw()中不管啥类型结果都是运行try中第一个函数,
随后就结束了。。。是try函数中只要一抛出就不在运行接下去的函数?书上好像不是这样的。。。还是编译器问题?
最佳答案
因为你声明了只throw int。
你把throw(int)删了就什么都能扔了
或者定义
void test(float a) throw (double,int,char,float*);
表示这些都能被扔

而且只要throw了,就直接跳到最近的catch,然后从catch的下一句继续执行,throw后面的到catch都被无视
全部回答
第一个更快捷和当机立断
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
广东中山汽车总站有直达四川成都的车吗?
速8酒店乌奇路店地址在什么地方,想过去办事
“海客乘天风,将船远行役。譬如云中鸟,一去
岚皋县档案馆地址有知道的么?有点事想过去
隐悔的近义词到底是什么呢?
按铁路特殊岩土规程,黄土地区不良地质调绘时
富豪成功有那些共同的性格特点
亲戚嫁人应该送什么
无纸数码传真机多少钱??????????
边伯贤小说吧里的重生文,女主重生之后找到了
聚仙阁饭庄(连珠山村东)地址在哪,我要去那里
尿素能兑水冲施吗?
孕妇能吃章鱼吗
【beatit歌词】迈克杰克逊Beatit的歌词翻成中
强胜牙科地址在哪,我要去那里办事
推荐资讯
常州市武进东盛电机厂在什么地方啊,我要过去
帝乙长子是谁 帝乙归妹是什么意思
关于我苦恼已久的英文名,claire PK gloria
最近有什么好玩的传奇版本
三星手机两年多没用了,现在要更新系统怎样可
石桥河村盆花示范园这个地址在什么地方,我要
牛角窝地址在哪,我要去那里办事
求藏头诗!周悦大美女!
请问大众志俊发动机故障灯亮起来用什么可以消
金融考研择校
已知:如图,AE=AC,AB=AD,∠EAB=∠CAD 求证:
煤矿井下岩层上像霉菌的白色晶状物是什么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?