《异常处理》 (2)ppt课件_第1页
《异常处理》 (2)ppt课件_第2页
《异常处理》 (2)ppt课件_第3页
《异常处理》 (2)ppt课件_第4页
《异常处理》 (2)ppt课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 异常处置机制是对所能预料到的运转错误进展处置的一套实现机制,针对这类问题,C提供了强大的异常处置机制。在程序设计时,应该充分利用这种机制,分析并处置各种能够出现的异常情况,以提高程序的稳定性和容错才干。 在小型软件系统中,一旦发生异常,普通是将程序立刻中断运转并进展内存释放。 对于大型软件来说,运转中发生异常时应该具备恢复和继续运转的才干,恢复过程就是把产生异常所呵斥的影响去除,中间能够会涉及一系列的函数调用链的退栈、对象的析构及资源的释放等。但由于函数之间有着明确的分工和复杂的调用关系,发现错误的函数往往不具备处置错误的才干。这是它就引发一个异常,并经过抛掷的异常信息处置发生的错误。处置之

2、后,程序在紧接着异常处置的代码区域中继续执行。在C中,异常是指从发生问题的代码区域传送四处置问题的代码区域的一个对象,如以下图所示: 异常处置的根本思想是:首先,实践资源分配如内存恳求或翻开文件的操作通常在程序的低层中执行,如上图中的k函数;其次。当无法分配内存或翻开文件时,将进展处置的操作通常放在高层中,中间还能够包含与用户会话的内容。 可见,异常为分配资源的代码转向处置错误的代码提供了一种表达方式。假设还存在中间层次的函数,如函数g,那么异常处置为它们释放所分配的内存提供了时机。因此,C异常处置机制在异常发生时,尽能够的减小了破坏并进展了缜密的善后任务,而不会影响到其他部分程序的正常运转。

3、 try语句块内为需求受维护的待检测异常的函数序列,假设程序员预料某段程序代码有能够发生异常,就将它放在try语句块内。当这段代码运转时真的发生异常时,其中的throw语句就会抛掷这个异常。 在try语句块之后必需紧跟一个或多个catch语句块,系统将根据throw抛出的异常类型依次检查catch语句块,当某个Catch语句块中的异常声明类型与抛掷异常的类型匹配时,该catch语句块捕获并处置这个异常。留意:每个catch语句后括号中的异常类型声明中只能包容一个参数。异常,假设条件成立,那么抛掷异常。(5)程序中不应该出现异常类型一样的catch语句块,由于异常处置程序是按照它出现的次序被检查

4、的。只需找到一个匹配的异常类型,后面的异常处置都将被忽略。 C+规范提供了一些规范异常,它们以基类exception开场,规范程序库抛出的一切异常处置,都派生自该基类,如以下图所示。该基类提供效力what,在每个派生类中重定义,发出相应的错误信息。bad_alloc:全局操作符new失败bad_cast:动态类型转换失败bad_typeid:假设typeid的参数为零或空指针bad_exception:函数调用发生不测logic_error:程序中存在逻辑错误,或违反类的不变性。out_of_range:数组下标之类的数值超越了界定的范围。Ios_base:failure:当数据流由于错误或由于到达文件尾部而发生形状改动。range_error:计算时发生区间错误overflow_error:运算上溢错误underflow_error:运算下溢错误 要运用异常类需求包含相应的头文件。其中: exception的bad_exception定义于中; bad_alloc定义于; bad_cast和bad_typeid定义于;iso_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论