日期:2012-03-13 17:21:00 来源:本站整理
C++非常数值的利用[VC/C++编程]
本文“C++非常数值的利用[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
当抛出C++非常时,函数调用链将此后回溯搜索,探求可以处理抛出这类非常的处理器.若没找到,进程完毕.假如找到,调用栈将被释放,全部的自动(部分)变量也将释放,然后栈将被整理为非常处理器的上下文相关设备.因此非常开销由一个非常处理器目录和一个活动的自动变量表(它需求额外的代码、内存,并且不管非常能否抛出,城市运行),还得加上函数调用链的搜索、自动变量的解析和栈的调整(它只在抛出非常的时刻需求履行)构成.
步骤/办法
抛出机会
抛出非常的机会应当是一个函数发现一个错误,假如没有一些特别的操作,该错误能禁止程序正常的运行,而这种操作它自己不能完成,或是在函数不大概有返回值的时刻.
利用非常处理更简单,更坚固,更有效,可以成立更结实的代码.但是,应当只在不测的情形下利用非常处理.假如你认为一个指针应当是空值,这种条件下就直接在代码中查抄这个值,而不要利用非常.什么时刻捕捉
关于这个问题,有一些大概的尺度:
.当函数知道若何处理这个非常时.
.当这个函数可以公道地处理这个非常而高级的函数不知道若何处理时.
.当抛出非常大概使进程崩溃时.
.当函数可以持续履行它的任务时.
.当需求整理分配好的资源时.
非常处理的一个缺陷是它大概招致资源的泄露.因此,避免资源泄露更应当是保持程序非常安全的一部份.栈释放时会自动整理部分变量,但不包含动态分配的变量.可以利用智能(smart)指针来保护你的代码在存在非常的情形下不会产生资源泄露.怎样捕捉
.非MFC的C++非常应当通过引用来捕捉.利用引用捕捉非常不需求删除非常对象(因为利用引用捕捉的非常会在栈中传送),并且它保存了多态性(因此你捕捉的非常对象恰是你抛出的非常对象).以上是“C++非常数值的利用[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:C++的非常与防备性编程
- ·下一篇文章:Visual C++消息Pragma的利用
- ·中查找“C++非常数值的利用”更多相关内容
- ·中查找“C++非常数值的利用”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论