异常类的构造函数和析构函数的使用
来源:互联网 发布:ubuntu挂载共享文件夹 编辑:程序博客网 时间:2024/06/05 16:35
问题:
1,定义异常类的过程中,什么时候使用异常类的析构函数,什么时候使用异常类的构造函数?
2,在try catch 中,为什么有时候用到的是catch(exception &e),而有时候用到的时catch(exception e),这两个有什么区别?什么时候用到?
为此专门写了以下一段代码,帮助理解:
测试结果:
解释说明:
首先,在第一个try catch 中throw显示的创建一个异常对象并抛出,程序执行顺序为:异常类的默认构造函数->捕获异常,处理->析构函数。
然而,在第二个try catch 中,函数的调用顺序就比较复杂了。调用顺序如下:
1,首先在函数g()中声明了异常类,调用默认构造函数。
2,抛出异常类,此时会创建一个异常类的副本,调用拷贝构造函数。
3,抛出异常时,函数g()会退出,此时调用析构函数,析构掉之前创建的局部对象。
4,catch(Excp e)捕获异常时,使用的是对象声明,再次拷贝一个副本,调用构造函数。
5,catch(Excp e)中,处理异常。
6,副本和原始对象被析构,调用两次析构函数。
总而言之,整个调用过程还是比较复杂的。
阅读全文
0 0
- 异常类的构造函数和析构函数的使用
- 关于构造函数析构函数和异常的一点点
- string类的构造函数,析构函数,拷贝构造函数和赋值构造函数
- 构造函数和析构函数的使用原因
- 构造函数和析构函数的使用
- string类的构造函数,拷贝构造函数,析构函数和赋值函数
- String类的构造函数,析构函数,拷贝构造函数和赋值函数
- string类的构造函数,拷贝构造函数,析构函数和赋值函数
- 编写类String的构造函数、拷贝构造函数、析构函数和赋值函数
- string类的构造函数、析构函数、拷贝构造函数和赋值函数
- 编写类String 的构造函数、拷贝构造函数、析构函数和赋值函数
- 写String类的普通构造函数,析构函数,拷贝构造函数和赋值函数
- 构造函数、析构函数抛出异常的问题
- 构造函数、析构函数抛出异常的问题
- 构造函数、析构函数抛出异常的问题
- 构造函数、析构函数抛出异常的问题
- 类的构造和析构函数
- ZT:对象生死劫 - 构造函数和析构函数的异常
- linux基础入门之groupadd命令
- git图形化工具GitKraken的使用——解决冲突
- Content provider
- Linux中 信号signal
- 关于python中二维数组的一个有趣的点
- 异常类的构造函数和析构函数的使用
- ffmpeg android 编译
- CodeM美团 初赛A轮 C题 倒水
- 无法查找或打开 PDB 文件
- python_入门初级
- 嵌入式Linux设备驱动开发笔记(四)
- 高通平台如何使用QPST抓DUMP
- 视频根据url获取第一帧图片,获取任一帧图片
- Android中Material Design中的风格介绍