C++ 异常处理(四) 有关异常处理的注意事项
来源:互联网 发布:淘宝免费打单软件 编辑:程序博客网 时间:2024/04/28 19:25
有关异常处理,应在程序设计时就加入,而不是以后加入,但也有缺点:
1,使用异常会增加程序的代码,降低程序的运行速度。
2,异常规范不适用于模板,因为模板函数引发的异常可能随特定的具体化而定。
3,异常与动态内存分配并非总能协同工作。
如动态内存的例子:
void test1(int n){string mesg("I'm trapped in an endless loop");...if (oh_no)throw exception();...return;}
string类采用动态内存分配,通常当函数结束,将为mesg调用string的析构函数。
虽然 throw 语句过早地终止了函数 ,但它仍然使得析构函数被调用,这归于栈解退。
void test2(int n){double * ar = new double[n];...if (oh_no)throw exception();...delete [] ar;return;}这里,解退栈时,将删除栈中的变量ar,但函数过早的终止意味着函数末尾的delete[]语句被忽略。
指针消失 了,但它指向的内存块未被释放,并且不可访问。这说明内存被泄漏了。
避免措施一:
void test3(int n){double * ar = new double[n];try{if (oh_no)throw exception();}catch (exception & e){delete [] ar;throw;}...delete [] ar;return;}
0 0
- C++ 异常处理(四) 有关异常处理的注意事项
- 有关Hibernate的异常处理
- 有关yarn异常处理
- 处理异常注意事项
- Java异常处理注意事项
- JAVA异常处理注意事项
- java异常处理注意事项
- javaSE7有关异常处理有关
- 有关java的异常处理的理解
- java中有关异常处理的问题
- java异常处理的六个注意事项
- JAVA-使用异常处理语句的注意事项
- C++异常处理的几点注意事项
- java进行异常处理时的注意事项
- 四 Java 异常处理
- PowerShell(四)异常处理
- 四、JAVA异常处理
- dubbo(四)异常处理
- Android开发随记(3)-- ActionBar控件显示、Checkbox样式
- 搭建高可用mongodb集群(四)—— 分片
- git remote 用法
- 题目:数字逆序且求各个位数乘积
- 解释器模式 Interpreter Pattern
- C++ 异常处理(四) 有关异常处理的注意事项
- Java基础---集合 (黑马程序员)
- eclipse安装AmaterasUML插件(LUNA)
- windows脚本-CMD和Batch
- 2015微软技术俱乐部科技文化月 —— “第七届SeedCoder编程大赛”火热报名中!!!
- 查看分区UUID
- Ubuntu更新出现 The system is running in low-graphics mode解决
- windows下secureCRT远程登录virtualbox-ubu
- greenDao----简介和快速使用(1)