下载此文档

第八章 异常概述.ppt


文档分类:IT计算机 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
第八章异常概述
斧邑斥韧绅捐刀帝抹沧役椒舌掖栈信孝沙贵伙绘匡朽乘换折镶献乌秩雅帕第八章异常概述第八章异常概述
异常概述
异常是程序执行时遇到的任何错误情况或意外行为。以下这些情况都可以引发异常:用户代码或调用的代码(如共享库)中有错误,操作系统资源不可用,公共语言运行库遇到意外情况(如无法验证代码)等等。对于这些情况,应用程序可以从其中一些恢复,而对于另一些,则不能恢复。尽管可以从大多数应用程序异常中恢复,但不能从大多数运行库异常中恢复。
Framework 中,异常是从 Exception 类类继承的对象。异常从发生问题的代码区域引发,然后沿堆栈向上传递,直到应用程序处理它或程序终止。
秉汁区枯戏棘寡利瞧蛰讲仟抚鳞泽尊筏橡帖伊越颜苦礁服阉迈榜筐砸溺迢第八章异常概述第八章异常概述
运行库如何管理异常(1)
运行库使用基于异常对象和受保护代码块的异常处理模型。发生异常时,创建一个 Exception 对象来表示该异常。
运行库为每个可执行文件创建一个异常信息表。在异常信息表中,可执行文件的每个方法都有一个关联的异常处理信息数组(可以为空)。数组中的每一项描述一个受保护的代码块、任何与该代码关联的异常筛选器和任何异常处理程序(Catch 语句)。此异常表非常有效,在没有发生异常时,在处理器时间或内存使用上没有性能损失。仅在异常发生时使用资源。
呵沾讨观呢亭饯淘瘫柳灿良兵麦绷询区箭铜跑未阵饵穆得峡诫忆踪逢疵潜第八章异常概述第八章异常概述
运行库如何管理异常(2)
异常信息表对于受保护的块有四种类型的异常处理程序:
Finally 处理程序,它在每次块退出时都执行,不论退出是由正常控制流引起的还是由未处理的异常引起的。
错误处理程序,它在异常发生时必须执行,但在正常控制流完成时不执行。
类型筛选的处理程序,它处理指定类或该类的任何派生类的任何异常。
用户筛选的处理程序,它运行用户指定的代码,来确定异常应由关联的处理程序处理还是应传递给下一个受保护的块。
拓虑弯胸伸娥日单阔瓦叛嘘池蔼骤钠如抵墨热拼艘伞慈沫峻慎啥吾疆题审第八章异常概述第八章异常概述
运行库如何管理异常(3)
异常发生时,运行库开始执行由下列两步组成的过程:
一、运行库在数组中搜索满足下列条件的第一个受保护块:
保护包含当前执行的指令的区域,而且包含异常处理程序或包含处理异常的筛选器。
二、如果出现匹配项,运行库创建一个 Exception 对象来描述该异常。然后运行库执行位于发生异常的语句与处理该异常的语句之间的所有 Finally 语句或错误处理语句。请注意,异常处理程序的顺序很重要:最里面的异常处理程序最先计算。还请注意,异常处理程序可以访问捕捉异常的例程的局部变量和本地内存,但引发异常时的任何中间值都会丢失。
如果当前方法中没有出现匹配项,则运行库搜索当前方法的每一个调用方,并沿着堆栈一直向上查找。如果任何调用方都没有匹配项,则运行库允许调试器访问该异常。如果调试器不能附加到该异常,则运行库引发 UnhandledException 事件。如果没有 UnhandledException 事件的侦听器,则运行库转储堆栈跟踪并结束程序。
婚桂琳沤镁戳鸭锭仑阮恳吴吊酗衔舔祈厚虾柞铅木谢捞藕虱踌苗耙逃豌拧第八章异常概述第八章异常概述
筛选运行库异常
可以按类型或按某些用户定义的条件对捕捉和处理的异常进行筛选。
类型筛选的处理程序处理特定类型的异常(或从该异常派生的类)。最常见形式的类型筛选的异常处理程序指定仅捕捉特定类型的异常。
下面的示例说明一个旨在捕捉特定异常(此例中为 FileNotFoundException)的异常处理程序。
catch(FileNotFoundException e) {
("[Data File Missing] {0}", e);
}
榷微苯淮寝沽八羽昧夹兄舞较迅潘肤男素呐蓝资攀飘驼审鼻溃筏隆嗽陇十第八章异常概述第八章异常概述
C#和C++中的异常的区别(1)
C#中的异常提供了一个处理系统级和应用程序级错误状态的结构化的、统一的和类型安全的方法。C#中的异常机制非常类似于C++的异常机制,但是有一些不同的地方:
铝醒渭僵鸳帕笨凡渭冗离眯嫁葱舔销衅椎即下弃美灭碍邢****窿袜揖釜额骏第八章异常概述第八章异常概述
C#和C++中的异常的区别(2)
(1)C#中,。而C++中的,任何类型的任何值都可以表示异常。
(2)在C#中,finally块可用于编写在正常执行和异常情况下都可以执行的终止代码。在C++中,很难在不重复代码的情况下编写这样的代码。
(3)在C#中,系统级的异常如溢出

第八章 异常概述 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人rjmy2261
  • 文件大小0 KB
  • 时间2015-11-21