最新嵌入式Linux下C++程序设计--09异常处理PPT课件.ppt
《最新嵌入式Linux下C++程序设计--09异常处理PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新嵌入式Linux下C++程序设计--09异常处理PPT课件.ppt(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式嵌入式LinuxLinux下下C+C+程序程序设计设计-09-09异常处理异常处理主要内容:异常处理机制异常实现异常执行过程异常接口声明异常处理中的构造与析构 如果在保护段执行期间或在保护段调用的任何函数中(直接或间接的调用)有异常被抛掷,则从通过throw创建的对象中创建一个异常对象(这隐含指可能包含一个拷贝构造函数)。这一点上,编译器能够处理抛掷类型的异常,在更高执行上下文中寻找一个catch语句(或一个能处理任何类型异常的catch处理程序)。catch处理程序按其在try块后出现的顺序被检查。如果没有找到合适的处理程序,则继续检查下一个动态封闭的try块。此处理继续下去,直到最外
2、层的封闭try块被检查完。异常处理的执行过程 如果匹配的处理器未找到,则terminate()将被自动调用,而函数terminate()的默认功能是调用abort终止程序。如果找到了一个匹配的catch处理程序,且它通过值进行捕获,则其形参通过拷贝异常对象进行初始化。如果它通过引用进行捕获,则参量被初始化为指向异常对象,在形参被初始化之后,“循环展开栈”的过程开始。这包括对那些在与catch处理器相对应的try块开始和异常丢弃地点之间创建的(但尚未析构的)所有自动对象的析构。异常处理的执行过程为了加强程序的可读性,使用户能够方便地知道所使用的函数会抛掷哪些异常,可以在函数的声明中列出这个函数可
3、能抛掷的所有异常类型。例如:voidfun()throw(A,B,C,D)这表明函数throw()能够且只能够抛掷类型A、B、C、D的异常。如果在函数的声明中没有包括异常接口声明,则此函数可以抛掷任何类型的异常。例如:void fun();一个不抛掷任何类型异常的函数可以进行如下形式的声明:void fun()throw();异常接口声明异常处理中的构造与析构C+异常处理的真正能力不仅在于它能够处理各种不同类型的异常,还在于它具有在异常抛掷前为构造的所有局部对象自动调用析构函数的能力。在程序中,找到一个匹配的catch异常处理后,如果catch语句的异常类型声明是一个值参数,则其初始化方式是复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 嵌入式 Linux C+ 程序设计 09 异常 处理 PPT 课件
限制150内