当前位置:  开发笔记 > 编程语言 > 正文

关于c ++异常.func()throw()

如何解决《关于c++异常.func()throw()》经验,为你挑选了1个好方法。

我正在阅读这个页面http://www.cplusplus.com/doc/tutorial/exceptions.html 它说如果我写函数()throw(); 该函数不能抛出任何异常.我尝试在msvc 2005中编写throw(),throw(int),throw(),什么都没有.每个都有完全相同的结果.没有.我扔了int,char*,另一种类型,它都被捕获了同样的方式.看起来投掷根本不影响它.function()throw()实际上做了什么?



1> Nemanja Trif..:

有关C++异常规范和Microsoft实现的详细信息,请参阅此文章:

Microsoft Visual C++ 7.1忽略异常规范,除非它们为空.空异常规范相当于__declspec(nothrow),它们可以帮助编译器减少代码大小.

[...]如果它看到一个空的异常规范,它会假设你知道你在做什么,并优化掉处理异常的机制.如果你的功能无论如何都会抛出 - 好吧,羞辱你.只有当你100%肯定你的功能不抛出时才使用此功能.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有