第14章异常处理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14章异常处理

异常处理 目 标 学习完本章之后,你应该能够掌握以下概念: 异常简介 捕获异常 异常处理简介 引 言 程序的编写是一个不断完善的过程,在这个过程中不可避免的会出现一些错误。这些错误可以分为可预知的和不可预知的。代码中这些错误的出现可能会引发程序抛出异常,本章将会对程序中的异常处理进行讲解。 异常简介 本部分从异常的基础知识讲起,引导读者逐渐了解异常的概念,并学会处理异常。 什么是异常 异常用来表示在应用程序执行期间发生的错误,以及其他的意外行为。以下这些情况有可能引发异常: 代码或调用的代码中有错误。 操作系统资源不可用。 公共语言运行库遇到意外情况。 自定义抛出异常。 其他。 其中某些异常是可以恢复的,而另一些则不能。在.NET Framework中,用Exception类表示基类异常,其他异常是从Exception类继承的. 下面介绍一下Exception类。Exception类是其他异常类的基类,大多数异常对象都是Exception类或其某个派生类的实例,但是任何从Obiect类派生的对象都可以作为异常引发。 异常类的常用属性如下: 1.StackTrace属性 此属性包含可用来确定错误发生位置的堆栈跟踪。如果有可用的调试信息,则堆栈跟踪包含源文件名和程序行号。 2.InnerException属性 此属性可用来在异常处理过程中创建和保留一系列异常。可使用此属性创建一个新异常来包含以前捕捉的异常。原始异常可由Inner Exception属性中的第二个异常捕获,这使处理第二个异常的代码可以检查附加信息。 3.Message属性 此属性用于提供有关异常起因的详细信息。Message用引发异常的线程的Thread.CurrentUICulture属性所指定的语言表示。 4.HelpLink属性 此属性可用于保存某个帮助文件的URL或URN,该帮助文件通常会提供有关异常起因的大量信息。 5.Data属性 此属性可以以键/值对的形式保存任意的数据,其类型为IDictionary。 6.Source属性 此属性用于获取或设置导致错误的应用程序或对象的名称。 7.TargetSite属性 此属性用于获取引发当前异常的方法。 可以用以下代码定义一个异常: Exception e: Exception类的构造函数有4种,比较常用的有以下3种: Exception();此构造函数将新实例的Message属性初始化为系统提供的消息,该消息描述错误并考虑当前系统区域性。所有由Exception类派生的类均应提供此默认构造函数。 Exception(string message);使用指定的错误信息初始化Exception类的新实例。 Exception(string message,Exception innerException);使用指定错误信息和对作为此异常原因的内部异常的引用来初始化Exception类的新实例。其中message参数为解释异常原因的错误信息;innerException参数为导致当前异常的异常,如果未指定内部异常,则是一个空引用。 异常从发生问题的代码区域引发,然后沿堆栈向上传递,直到应用程序处理它或程序终止。 C#中的异常 在程序中使用异常是一个非常好的习惯,一个优秀的应用程序的代码中应该包括了大量的异常处理代码。有两种类型的异常,即由执行程序生成的异常和由公共语言运行库生成的异常。另外,还有由应用程序或运行库引发的异常的层次结构。C#中除了Exception类之外,还存在许多其他的派生类。 捕获异常 理解异常的定义只是应用异常的第一步,下面的工作就是捕获异常并对其进行处理。本节向读者介绍捕获异常的方法。 try…catch语句 C#中可以使用try…catch语句捕获程序抛出的异常。请读者观察以下代码: using System; using System Collections.Generic; using System.Text; namespace Example14_1 { class Program { static void Main(string[]args) { int[]myArray=new int[4]{1,2,3,4); myArray[5]=5; //错误的赋值,将会引发异常 } } } 显然上述代码中存在着错误,即数组的索引超限。运行程序会产生如图11.1所示的错误。 可以看到,Visual Studio 2005抛出了一个IndexOutOfRangeException异常,这种异常可以用try… catch语句来进行处理。以下代码演示了try…ca

文档评论(0)

zhanghc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档