- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章开发出符合质量要求的软件——异常、调试、测试和
《ASP.NET 3.5网站开发从入门到精通》 第 14 章开发出符合质量要求的软件——异常、调试、测试和部署 异常处理和异常类 调试 测试 部署 第 14 章开发出符合质量要求的软件——异常、调试、测试和部署 异常处理和异常类 调试 测试 部署 14.1 处惊不变看异常--异常和异常处理 程序中不可避免的存在错误,程序在运行过程中也可能出现异常,就像有时人会生病而不能正常去上班一样。程序员应该对可能出现的错误和异常进行控制和处理,以保证程序的稳定可靠,提高程序的质量。 14.1.1 异常和异常处理 异常是程序执行时遇到的任何错误情况或意外行为。如在打开文件时文件不存在,就会引起异常导致程序中止。异常处理就是编程人员在程序编码中对可能发生的错误和异常所采取的处理措施。如可能存在异常就要进行异常处理.,以保证程序正常运行,适当的异常处理可以避免系统终止当前操作,否则程序可能会出现故障,系统也可能崩溃。如日常生活中,小胡每天8:00准时上班,突然某天因为交通事故无法来上班,交通事故就是异常,于是小胡打电话请假,找人做自己工作等就是异常处理。 14.1.2 异常类 异常通常由应用程序(用户程序等)或运行库(公共语言运行库和应用程序运行库) 引发的。.NET提供了大量与异常有关的类,用来处理异常,每一个异常类都表示一种异常。Exception类是所有异常的基类,当发生异常时,系统或当前正在执行的应用程序通过引发包含关于该错误的信息的异常来报告异常。异常发生后,将由该应用程序或默认异常处理程序进行处理。异常类继承关系的结构图如图所示。 有些异常在基本操作失败时由 .NET Framework 的公共语言运行库 (CLR) 自动引发,如“零做除数时”就会引发 DivideByZeroException异常。下表列出了常用的异常。 对于.NET类来说,一般的异常类System.Exception派生于System.Object,通常不在代码中抛出这个System.Exception对象,因为它无法确定错误的具体情况。通常用的异常类都从Exception类继承。其中有两种主要类型的异常类,它们构成了几乎所有的应用程序和运行库异常的基础。它们分别是: ⑴ ApplicationException:用户定义的应用程序异常类型的基类。ApplicationException继承Exception,但是不提供扩展功能,必须开发ApplicationException的派生类,以实现自定义异常的功能。 ⑵ SystemException:是系统异常类。CLR抛出的异常称为系统异常。这些异常通常被看作是不可恢复的、致命的错误。系统异常直接从名为System.SystemException的基类中派生,该基类又从System.Exception中派生。 14.1.3 异常处理语句 C#提供try…catch…finally结构进行异常处理,语法如下: Try { //这里放置有可能出现异常的代码 } catch() { //这里放置对异常处理的代码 } finally { //这里放置最后要执行的代码,以执行必要的清理操作,以释放资源;} 在 catch 块中可以使用 throw 语句再次引发已由 catch 语句捕获的异常,使用throw语句既可以引发系统异常,也可以引发自定义异常。throw使用格式如下: throw new 异常类; 例如: 01 throw new ArgumentNullException();//抛出值不能为空的异常 throw new ArgumentNullException 实例化了ArgumentNullException 类的一个异常对象,并抛出。只要在try块中遇到一个throw语句,就会立即查找与这个try块对应的catch块以进行异常处理。 【范例14-1】 异常处理例子,实现如字符串为空,抛出ArgumentNullException异常。 14.1.4 自定义异常 程序中出错的情况很多,如果系统提供的异常类不能够与程序中的异常相匹配,就需要自定义异常类。自定义异常类的语法如下: class 自定义异常名:基类异常名 { //语句块 } 一般要在自定义异常类中定义三种构造函数,三个构造函数如下所示,定义时确保构造函数的参数名称和类型与在下面代码中的相同。 public class NewException : BaseException //从基类继承创建自定义异常类NewException { //1.第一个构造函数,自定义异常类无参构造函数 03 public NewException() //自定义异常类的无参构造函数 04
文档评论(0)