C++ 异常处理 要点
来源:互联网 发布:python神经网络入门 编辑:程序博客网 时间:2024/06/01 20:27
1. throw出来的异常如果到最后也没有被catch,那么程序会abort
2. 构造函数中如何有异常抛出,那么这个类的析构函数不会被调用(因为这个对象没有构造完成),所以必须在构造函数中catch这个异常,然后释放之前所有已经分配的空间
3. 析构函数中的异常不能传递到析构函数外, 因为1. 之后的代码不会被执行(可能造成内存泄漏) 2. 有可能是因为一个异常处理进入的析构函数,如果再抛出异常,会导致程序直接abort.
4. 传递异常的时候应该只使用throw,不应该使用throw XXX; 因为后者会产生切割
5. catch参数如果是类类型,应该使用引用
使用指针的问题:1如果是栈对象,那么throw后跳出函数 导致内存被释放 2即使是hep对象 catch不知道是否应该释放该内存
使用值传递的问题:导致2次copy
6. catch块的写法,1. 必须把派生类类型写在前面,否则永远不会被执行 2.对于基本类型,conpiler不会做强制转换,所以每一种可能都要写一个catch块
7. 异常和函数调用的区别: 异常必须做一次copy
8.编写异常说明时,要确保派生类成员函数的异常说明和基类成员函数的异常说明一致,即派生类改写的虚函数的异常说明至少要和对应的基类虚函数的异常说明相同,甚至更加严格,更特殊。
- C++ 异常处理 要点
- C++ 异常处理 要点
- java 异常处理 要点
- C++ 中的异常处理要点
- java.lang.NoSuchMethodError异常处理要点
- java的异常处理机制要点总结
- java语言---异常处理要点(1)
- [面试要点]java异常处理机制
- c#中的异常处理
- 异常处理 - [C++]
- c异常处理
- Objective-c异常处理
- C语言异常处理
- c 异常处理
- C 异常处理设计
- [C++] 异常处理
- C++“异常处理”
- objective-c 异常处理
- eclipse里配置jar包的source和doc关联
- Win32 API编程简介Demo程序
- SQL优化之不走索引_走rule很快,CBO很慢
- JSF请求处理过程详解
- android开发-wifi连接eclipse调试,拜拜USB
- C++ 异常处理 要点
- Linux文件或者文件内容搜索
- 介绍JSF框架中使用的设计模式
- Tkinter教程之Event篇
- 位操作
- Linux平台下编程需要学习的知识小总结
- java 面试
- Jquery 选择器详解
- 初学C#编程的注意事项