首页 > 代码库 > VisualC++ Exception Specifications
VisualC++ Exception Specifications
Exception Specifications这个词我成为“异常规格”,不知道是否准确,有更准确的希望大家布林刺激哦。
异常规格被用于指出一个函数能抛出什么样的异常。
函数可以抛出任何类型异常
void MyFunction(int i) throw(...);
函数不能抛出异常
void MyFunction(int i) throw();其等效于
void __declspec(nothrow) MyFunction(int i) throw();
VisualC++与标准C++在异常规格实现,下面是VisualC++的异常规格说明
异常规格 | 涵义 |
throw() | 函数不会抛出异常 |
throw(...) | 函数可以抛出任何异常 |
throw(type) | 函数抛出type类型异常 |
一个函数抛出异常的行为还取决于下面因素:
- 编译函数的方式是C还是C++
- /EH编译选项有关系(/EH:异常处理模式)
- 指定的异常规格有关系
下面是详细说明:
Function | /EHsc | /EHs | /EHa | /EHac |
---|---|---|---|---|
C function | throw() | throw(...) | throw(...) | throw(...) |
C++ function with no exception specification | throw(...) | throw(...) | throw(...) | throw(...) |
C++ function with throw() exception specification | throw() | throw() | throw(...) | throw(...) |
C++ function with throw(...) exception specification | throw(...) | throw(...) | throw(...) | throw(...) |
C++ function with throw(type) exception specification | throw(...) | throw(...) | throw(...) | throw(...) |
P.S:以上内容参考MSDN2008所写。
VisualC++ Exception Specifications
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。