读书人

在函数后面加上throw()是否有意义?解决

发布时间: 2012-03-22 17:43:57 作者: rapoo

在函数后面加上throw()是否有意义?
在我学的教材里,在函数声明后面加上throw()可以告知编译器此函数不抛出
任何形式的异常,可使编译器在编译的时候不在这个函数中产生异常的开销.
这个我本来是一直用的,但由于一个蛮猥琐的原因(加上这个VS自动排版经常乱),
我想知道throw()是否需要加?如果我不加的话,编译器不能自动判断吗?
因为我加了,但在函数抛出异常的时候会提示:"你告诉我函数XXX不抛出异常,但是确实抛出了"
所以想到如果我不加编译器能自动判断吗...
谢谢!

[解决办法]
不加就意味着可能抛出任何异常
[解决办法]
不加,编译器就会认为该函数可能跑出任何异常,编译器恐怕还没那么聪明吧,能够自己判断
[解决办法]
限定异常抛出的,如果抛出未指定的异常,编译器会报错的。
[解决办法]

探讨

不加,编译器就会认为该函数可能跑出任何异常,编译器恐怕还没那么聪明吧,能够自己判断

读书人网 >C++

热点推荐