C++异常对象三种方式传递的综合比较
2016-06-07 09:46
260 查看
至此,对c++中的异常处理机制与模型已经进行了非常全面的阐述和分析,包括c++异常的语法,c++异常的使用技巧,c++异常与面向对象的相互关系,以及异常对象的构造、传递和最后析构销毁的过程。
按值传递 | 引用传递 | 指针传递 | |
语法 | catch(std::exception e) | catch(std::exception& e) | catch(std::exception* e) |
如何抛出异常? | ①throw exception() ②exception ex;throw ex; {K84pAx)(资/料来.源,于:gzu521学;习/网:IT认证;计算机软件水平考试 ]gzu521.com{K84pAx) ③throw ex_global; | ①throw exception() ②exception ex;throw ex; ③throw ex_global; | ①throw new exception(); |
异常对象的构造次数 | 三次 | 二次 | 一次 |
效率 | 低 | 中 | 高 |
异常对象什么时候被销毁 | ①局部变量离开作用域时销毁 ②临时变量在catch block执行完毕后销毁 ③catch后面的那个类似参数的异常对象也是在catch block执行完毕后销毁 | ①局部变量离开作用域时销毁 ②临时变量在catch block执行完毕后销毁 | 异常对象动态地在堆上被创建,同时它也要动态的被销毁,销毁的时机是在catch block块中处理完毕后进行 |
发生对象切片 | 可能会 | 不会 | 不会 |
安全性 | 较低,可能会发生对象切片 | 很好 | 低,依赖于程序员的能力,可能会发生内存泄漏;或导致程序崩溃 |
综合性能 | 差 | 好 | 一般 |
易使用性 | 好 | 好 | 一般 |
相关文章推荐
- [C++]Deque with iterator实现细节
- C/C++ - 基础知识
- C++之tinyXML使用 .
- C/C++常考面试题
- c++ primer(第五版)学习笔记及习题答案代码版(第十四章)重载运算与类型转换
- Facebook开源C语言事件框架:libPhenom
- c++函数重载
- VS2013 编程环境设置,如何显示C++程序行号。
- 博客,也可以用来学习,今天申请开通CSDN博客 ,希望以此帮助自己学好C++
- 【经验】C语言编程最常见的15个错误【写给粗心的同学】
- 例题】二级C语言上机编程十例【附详解】
- 揭秘】二级C语言上机考试评分原理
- 为什么首选C语言
- gdi+ gdiplus创建保存动态gif动画成功 C++语言 有意者请联系我
- C语言标准
- Leetcode_c++: Search in Rotated Sorted Array II (081)
- c++第七次上机作业
- c++第七次上机实验
- ACM:蓝桥杯:阶乘因式分解(一)
- Effective C++: {}初始化