《(9.1)--9.1 异常的概念及实现.ppt》由会员分享,可在线阅读,更多相关《(9.1)--9.1 异常的概念及实现.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、9.1 异常的概念及实现 目录第一节异常的概念与基本思想第二节异常处理机制的实现第三节构造函数、析构函数与异常处理第四节异常匹配第9章异常处理(Exception Handling)第五节标准异常及其层次结构第六节异常处理中需要注意的问题第一节9.1 异常处理的概念与基本思想异常处理的概念与基本思想异常是指程序运行时出现的不正常情况而导致偏离正常流程的现象。运行时发生的错误,比如除数为零、访问数组元素的下标越界,在越界时又写入了数据或意外的非法输入等等。异常存在于程序的正常功能之外,并要求程序立即处理。通过异常可以将问题的检测和解决分离,方便了程序的开发和设计。9.1.1 异常处理的概念与基本
2、思想没有异常处理时,如果发生错误,就可能导致运行错误而终止程序,因为程序中没有对此的防范措施,系统只好终止程序的运行。如果程序能够事先分析程序运行时可能出现的各种意外情况,并且分别制定出响应的处理方法,程序就可以在处理完问题继续执行,而不是立即终止运行。这就是异常处理。9.1.2 异常处理模式C+中,如果被调用函数R需要发送一条出错信息给调用函数Q,它可向调用环境发送一个描述错误信息的对象。如果调用环境Q没有捕获该错误信息对象,则该错误信息对象会被自动向上一层的调用环境发送。9.1.2 异常处理模式如果调用环境Q捕获了该错误信息对象但无法处理,则调用环境Q可以将该错误信息对象主动发送到它的上一
3、层调用环境中;直至被操作系统捕获和处理,导致程序被终止执行。第二节9.2 异常处理机制的实现异常处理机制的实现C+语言的异常处理语句包括引发异常语句throw和捕获处理语句try-catch,这两种语句就是C+语言中用于实现异常处理的机制。9.2.1 异常处理的语句 try块(try block)l 错误处理部分用它来处理异常。try语句块以try关键字开始,后面是用花括号括起来的语句序列块。try块后以一个或多个catch子句结束。l 在try块中的代码直接使用throw抛出一个异常或在调用函数时抛出一个异常,程序会立刻跳转到catch子句进行处理。因此,catch子句也称为处理代码。l t
4、ry子句中的语句可以是任意C+语句,如果预料程序有可能发生异常,则将其放在try块中。9.2.1 异常处理的语句 throw表达式(throw expression)l系统通过throw表达式抛出异常,错误检测部分使用这种表达式来说明遇到了无法处理的错误。l关键字throw后的表达式的值称为一个异常,所以执行throw语句就称为抛出异常,可以抛出任意类型的一个值。如果程序中有多处要抛出异常,应该使用不同的操作数进行区别。l执行throw语句时,try块就会停止执行。如果try块之后有一个合适的catch块,控制权就会转交catch块处理。9.2.1 异常处理的语句9.2.2 异常接口声明C+提供了异常接口声明,即在函数原型声明中,位于参数表列之后。异常接口声明清晰地告诉函数的使用者:该函数可能抛出的异常类型,以便使用者能够方便地捕获异常对象进行异常处理。9.2.2 异常接口声明(1)抛出指定类型异常对象的函数原型 void function()throw(type1,type2,);(2)能抛出任何类型异常对象的函数原型:void function();(3)能抛出任何类型异常对象的函数原型:void function()throw();谢谢