欢迎来到天天文库
浏览记录
ID:52563636
大小:107.50 KB
页数:9页
时间:2020-03-28
《C#.NET异常处理与预处理.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、异常处理一般而言,所谓“异常”是指:程序在运行时发生的不正常的错误情况。而当异常状况产生时,若能通过捕捉这些异常情况来加以处理,便能在程序执行时避免错误的产生,从而避免陷入无法顺利运行程序的窘境。<一>Exception异常类Exception类表示在应用程序执行期间发生的错误。System.Exception类是所有异常的基类型。此类具有一些所有异常共享的值得注意的属性:属性访问权限类型描述HelpLink只读String获取或设置指向此异常所关联帮助文件的链接InnerException只读Exception获取或导致当前异常的Excepti
2、on实例Message只读String获取描述当前异常的消息Source只读String获取或设置导致错误的应用程序或对象的名称StackTrace只读String获取当前异常发生所经历的方法的名称和签名TargetSite只读MethodBase获取引入当前异常的方法Exception类是所有异常的基类。当发生错误时,系统或当前正在执行的应用程序通过引发包含关于该错误的信息的异常来报告错误。异常发生后,将由该应用程序或缺少异常处理程序进行处理。异常类型支持下面的功能:◆描述错误的可读文本。当异常发生时,运行库产生文本消息,通知用户错误的改选并提供解
3、决该问题的操作建议。此文本消息保存在异常对象的Message属性中,在创建异常对象过程中,可以将文本字符串传递给构造函数以描述该特定异常的详细信息。如果没有向构造函数提供错误信息参数,则将使用缺省错误信息。◆发生异常时调用堆栈的状态。StackTrace属性包含可以用来确定代码中错误发生位置的堆栈跟踪。堆栈跟踪列出所有调用的方法和源文件中这些调用所在的行号。基类Exception存在两类异常◆从SystemException派生的预定义公共语言运行库异常类。◆从ApplicationException派生的用户定义的应用程序异常类。1、异常层次结构有
4、两种类型的异常:由执行程序生成的异常和由公共语言运行库生成的异常。另外,还有由应用程序或运行库引发的异常的层次结构。Exception是异常的基类。若干异常类直接从Exception继承,其中包括ApplicationException和SystemException。这两个类构成几乎所有运行库异常的基础。错误发生时,运行库引发SystemException的适当派生类。这些错误是失败的运行库检查(如数组走出界限错误)导致的,它们可在任何方法的执行过程中发生。ApplicationException由用户程序引发,而不是由运行库引发。如果设计创建新异
5、常的应用程序,应从ApplicationException类派生那些异常。不建议捕捉SystemException,在应用程序中引发SystemException也不是好的编程做法。最严重的异常,即那些由运行库引发或在不可恢复的情况中引发的异常包括ExecutionEngineException、StackOverflowException和OutOfMemoryException。交互操作异常从SystemException派生并由ExternalException进一步扩展。例如,COMException是COMInterop操作过程中引发的异常
6、,它从ExternalException派生。Win32Exception和SEHException也从ExternalException派生。2、运行库异常层次结构运行库有一组SystemException派生的基异常,它在执行各指令时引发这些异常。下表是运行库提供的标准异常以及派生类的创建条件异常类型基类型说明示例ExceptionObject所有异常的基类无(使用此异常的派生类)9SystemExceptionException所有运行时生成的错误的基类无(使用此异常的派生类)IndexOutOfRangeExceptionSystemExce
7、ption仅当错误地对数据进行索引时,才由运行库引发在数组的有效范围外对数组进行索引:arr[arr.length+1]NullReferenceExceptionSystemException仅当引用空对象时,才由运行库引发Object0=null;o.ToString();InvalidOperationExceptionSystemException当处于无效状态时,由方法引发从基础集合移除Item后调用Enumerator.GetNext()ArgumentExceptionSystemException所有参数异常的基类无(使用此异常的派生
8、类)ArgumentNullExceptionArgumentException由不允许参数为空的方法引发S
此文档下载收益归作者所有