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++中的异常处理机制与模型已经进行了非常全面的阐述和分析,包括c++异常的语法,c++异常的使用技巧,c++异常与面向对象的相互关系,以及异常对象的构造、传递和最后析构销毁的过程。

你可能感兴趣的:(private)