主题 : 如何使用好异常处理技术 复制链接 | 浏览器收藏 | 打印
arm9之家,加油!一起加油!
级别: 新手上路
UID: 74373
精华: 0
发帖: 24
金钱: 130 两
威望: 26 点
贡献值: 0 点
综合积分: 48 分
注册时间: 2012-07-23
最后登录: 2012-09-27
楼主  发表于: 2012-08-15 14:32

 如何使用好异常处理技术

想用好的异常处理技术不是一件容易的事情,原因之一是它确实难用,行为比较怪异,你必须搞清楚与异常处理相关的4个流程:

1.         没有异常抛出时程序的正常执行流程。

2.         当抛出异常,但是如果在当前函数范围内异常没有被捕获,此时程序的执行流程。

3.         当抛出异常并且在当前函数范围内异常被捕获后程序的执行流程。

4.         以及当异常被处理后的程序执行流程。

原因之二就是它会带来额外的开销,主要是异常处理的存储、传递及类型匹配。

不同编译器和平台对异常处理机制的实现技术彼此不同。一些编译器可以设置异常处理支持开关,当关闭异常处理支持后,附加的数据结构、查找表、额外的代码的都不会生成。但是即使你不直接使用异常处理也会隐含地使用它,例如new和许多操作符都可以抛出异常。STL容器及标准库的其他函数也会抛出它们自己的异常,第三方供应商的代码库也可能使用异常处理机制,因此,当我们把纯C代码移植到C++编译环境中来的时候才可以安全地关闭异常处理支持。

一般情况下不要把异常处理机制当做正常的程序控制流程来使用,如果不使用异常处理机制就能够安全而高效地消除错误,那么就不要使用异常处理,但是由于不同编译器

在实现异常处理机制采用的技术一般不同,而且异常处理确实也是一种流程控制手段,所以可能会应用在某些安全领域。
来自 嵌入式培训:“http://www.lirenedu.org/index.php?ack=xinwen&id=1161

嵌入式培训 http://www.lirenedu.org/