下载此文档

《异常处理》 (2).ppt


文档分类:IT计算机 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
该【《异常处理》 (2) 】是由【相惜】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【《异常处理》 (2) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。第十二章异常处理在编写应用软件时,程序员不仅要保证软件的功能完备,而且应该使软件具备较好的容错能力。也就是说,在运算结果出现意外〔如除数为“0〞等〕、试图翻开一个不可用的文件及用户使用操作不当等情况下,应用系统应该准确地向用户提示并自行处理这些错误,从而防止出现系统不稳定或者死机的情况。为了解决上述问题,就要使用到C++的异常处理机制。,即语法错误。这种错误的后果是无法生成运行程序〔*.exe〕,编译失败〔程序员可以根据错误提示改正此类错误〕;另一类是在运行中发生的错误,它可以分为不可预料的逻辑错误和可以预料的运行异常。逻辑错误是由设计不当造成的,一般是不可预料的,但可以在设计时加以注意或专门写处理此问题的方法,从而防止此类问题的发生。而运行异常,是可以预料但不可防止的,它是由系统运行环境造成的,这些错误会使程序运行失常,甚至造成系统瘫痪。面向对象程序设计第二版编辑课件异常处理机制是对所能预料到的运行错误进行处理的一套实现机制,针对这类问题,C++提供了强大的异常处理机制。在程序设计时,应该充分利用这种机制,分析并处理各种可能出现的异常情况,以提高程序的稳定性和容错能力。,一旦发生异常,一般是将程序立即中断运行并进行内存释放。对于大型软件来说,运行中发生异常时应该具备恢复和继续运行的能力,恢复过程就是把产生异常所造成的影响去除,中间可能会涉及一系列的函数调用链的退栈、对象的析构及资源的释放等。但由于函数之间有着明确的分工和复杂的调用关系,发现错误的函数往往不具备处理错误的能力。这是它就引发一个异常,并通过抛掷的异常信息处理发生的错误。处理之后,程序在紧接着异常处理的代码区域中继续执行。在C++中,异常是指从发生问题的代码区域传递到处理问题的代码区域的一个对象,如以下图所示:、传递和处理编辑课件异常处理的根本思想是:首先,实际资源分配〔如内存申请或翻开文件〕的操作通常在程序的低层中执行,如上图中的k函数;其次。当无法分配内存或翻开文件时,将进行处理的操作通常放在高层中,中间还可能包含与用户会话的内容。可见,异常为分配资源的代码转向处理错误的代码提供了一种表达方式。如果还存在中间层次的函数,如函数g,那么异常处理为它们释放所分配的内存提供了时机。因此,C++异常处理机制在异常发生时,尽可能的减小了破坏并进行了周密的善后工作,而不会影响到其他局部程序的正常运行。++异常处理的实现C++语言提供对处理异常情况的内部支持。throw和try、catch语句就是C++语言中用于实现异常处理的机制。有了C++异常处理,程序可以向更上层的方法传递意想不到的事件,从而使程序能更好地从这些异常事件中恢复过来。: throw表达式如果程序出现了异常,就可以使用throw语句抛掷这个异常〔其中表达式的值可以是字符串、int、float、类类型等〕,把它抛掷给相应的处理者〔类型匹配的catch块〕。Throw的操作数表示异常的类型,语法上与return语句的操作数相似,如果程序中有多处需要抛掷异常,应该用不同的操作数类型来互相区别〔其机制类似于对“catch函数〞的重载〕。面向对象程序设计第二版编辑课件try语句块的语法: try { 待检测异常的函数序列 } catch(异常类型声明1) { 异常处理语句序列 } catch(异常类型声明2) { 异常处理语句序列 } … catch(…) { 异常处理语句序列}try语句块内为需要受保护的待检测异常的函数序列,如果程序员预料某段程序代码有可能发生异常,就将它放在try语句块内。当这段代码运行时真的发生异常时,其中的throw语句就会抛掷这个异常。在try语句块之后必须紧跟一个或多个catch语句块,系统将根据throw抛出的异常类型依次检查catch语句块,当某个Catch语句块中的异常声明类型与抛掷异常的类型匹配时,该catch语句块捕获并处理这个异常。注意:每个catch语句后括号中的异常类型声明中只能容纳一个参数。,通常的设计步骤如下:⑴定义异常中的try语句块,并将有可能产生错误的语句序列写在try块中;⑵定义处理异常的catch语句块,并将异常处理的语句放在catch块中,以便异常被传递过来时立即得到处理;⑶设计何时使用throw语句抛掷异常,检测是否产生异常,假设条件成立,那么抛掷异常。面向对象程序设计第二版编辑课件

《异常处理》 (2) 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数18
  • 收藏数0 收藏
  • 顶次数0
  • 上传人相惜
  • 文件大小1.24 MB
  • 时间2024-04-16