代码规范_3:c++ _异常
来源:互联网 发布:jquery怎么渲染数据 编辑:程序博客网 时间:2024/06/05 02:58
http://www.cnblogs.com/nzbbody/p/3418989.html
- 指针和动态分配导致的内存回收问题:在C++中,不会自动回收动态分配的内存,如果遇到异常就需要考虑是否正确的回收了内存。
捕获异常
- 抛出异常用throw,捕获用try……catch。
//throw造成程序执行过程中从oz()函数返回时,对象rb的析构函数调用#include <iostream>using namespace std;class RainRow{public: RainRow() { cout<<"RainBow()"<<endl;} ~RainRow(){ cout<<"~RainBow()"<<endl;}};void oz(){ RainBow rb; for(int i=0; i<3; i++) cout<<"there is no place like home"<<endl; throw 47;}int main(){ try{ cout<<"tornado,witch, munchkins ..." <<endl; oz(); } catch(int){ cout << "Auntie Em! I had the strangest dream ..."<<endl; }}
异常匹配
- 通过引用而不是值来匹配异常
//不会将一种异常转换为另一种异常#include <iostream>using namespace std;class Except1{};class Except2{public: Except2 (const Except1 &) {}};void f() {throw Except1();}int main(){ try{ f(); }catch (Except2&){ cout<< "inside catch(Except2)"<<endl; } catch (Except 1&){ cout<< "inside catch(Except1)"<<endl; } }//输出结果:Except1不可以将Except1转换为Except2
- 基类捕获派生类
#include <iostream>using namespace std;class x{ public: class Trouble {}; class Small : public Trouble{}; class Big: public Trouble{};};int main(){ X x; try{ x.f(); } catch(X::Trouble &){ cout<< "caught Trouble" <<endl } catch(X::Small&){ cout<< "Caught Small Trouble"<<endl; } catch(X:: Big &){ cout<< "caught Big Trouble"<<endl; }}//将Trouble对象,或者派生自Trouble的对象(small 或者 big)匹配到第一个异常//通常,捕获派生类的异常,最后捕获
捕获所有异常
- catch( … )
清理
- 当程序离开一个作用域时,由构造函数构造的对象,一定会调用析构函数析构
资源
- 当构造函数执行中抛出异常,那么对象的析构函数就不会被调用
auto_ptr
- 封装堆内存的指针
标准异常
0 0
- 代码规范_3:c++ _异常
- 代码规范_5:c++ _代码规范
- C#_异常捕捉
- C++_异常问题
- C语言代码规范
- C语言代码规范
- C语言代码规范
- C/C++代码规范
- Objective-C代码规范
- Object-C代码规范
- Objcet-C 代码规范
- Objective-C代码规范
- Objective-C代码规范
- objective c代码规范
- Object-C代码规范
- Object-c 代码规范
- Objective-C代码规范
- 嵌入式c代码规范
- 网易面试题(第25题) 最长滑坡路径
- linux命令介绍(5)
- leetcode_069 Sqrt(x)
- HDU 2134 Cuts the cake
- 主题创建者(Custom Theme)
- 代码规范_3:c++ _异常
- 软件工程
- HDU 2896 病毒侵袭(AC自动机)
- 选择排序、插入排序、冒泡排序【O(n^2)】
- [ArrayList]——逻辑梳理
- [leetcode 216] Combination Sum III ------组合数的和(回溯法)
- 第6天-sql简单数据实操
- struts自定义类型转换器,局部和全局
- 且听风吟