明智运用exception specifictions

如果一个函数抛出一个并未列于其exception specifiction的异常,这个错误会在运行时刻被检验出来,于是特殊函数unexpected会被自动调用。unexpected的默认行为是调用terminate,而terminate的默认行为是调用abort,所以如果程序违反exception specifiction,默认结果是程序被中止。

 

extern void f1();

void f2() throw(int)

void f2() throw(int)//C++中这种写法是完全合法的

{

...

f1();

....

}

 

千万不要为template提供意味深长的exception spcifiction,因为template

几乎必然会以某种方式使用其类型参数。结论是:不应该将templates和exception specifictions混合使用。

 

More Effective C++---14th

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值