建党95周年讲话ppt:c++异常是如何工作的
来源:百度文库 编辑:偶看新闻 时间:2024/05/01 12:07:03
3. 异常使用技巧
3.1 异常是如何工作的
为了可以有把握的使用异常,我们先来看看异常处理是如何工作的。
3.1.1 unwinding stack我们知道,每次函数调用发生的时候,都会执行保护现场寄存器、参数压栈、为被调用的函数创建堆栈这几个对堆栈的操作,它们都使堆栈增长。每次函数返回则是恢复现场,使堆栈减小。我们把函数返回过程中恢复现场的过程称为unwinding stack。
异常处理中的throw语句产生的效果与函数返回相同,它也引发unwinding stack。如果catch不是在throw的直接上层函数中,那么这个unwinding的过程会一直持续,直到找到合适的catch。如果没有合适的catch,则最后std::unexpected()函数被调用,说明发现了一个没想到的异常,这个函数会调用std::terminate(),这个terminate()调用abort(),程序终止(core dump)。
在“简介”中提到的longjmp()也同样会unwinding stack,但是这是一个C函数,它就象free()不会调用对象的析构函数一样,它也不知道在unwinding stack的过程中调用栈上对象的析构函数。这是它与异常的主要区别。
MQM在异常发生时是如何进行管理的
设备工作异常!解决不了的问题!
每次只要是通过网络传输的声音信号,CPU工作就会异常
打印机是如何工作的?
工作是如何做的?
显微镜是如何工作的?
CPU是如何工作的?
搜索引擎是如何工作的?
计算器是如何工作的
网络是如何工作的?
虚拟光驱是如何工作的
投影机是如何工作的。。?
电脑是如何工作的?
HTTP是如何工作的?
搜索引擎是如何工作的?
电视卡是如何工作的?
硬盘是如何工作的
水利工程是如何工作的
卡巴斯基工作异常
脑CT做出来的结果是:明显异常密度影. 是何症状,如何治疗
或许是因为世道变迁,本人疑心异常的重。不容易相信人。该如何?
急!我的USB双打10键手柄工作异常!!
求救讯号!我的USB手柄工作异常
java的异常处理如何使用?