网站大量收购独家精品文档,联系QQ:2885784924

c高级编程十一章异常处理.pptxVIP

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

C#高级编程第十一章异常处理

本章目标了解常用异常了解.NET异常处理的作用掌握配置异常的状态(重点)了解应用程序级异常掌握处理多个异常(重点)

本章任务实现汽车速度超过限速时的异常处理

错误、bug和异常bug:简单来说,这是由程序员一方引起的错误。举例来说,假定我们在进行非托管编程,如果删除已分配的内存失败(从而导致内存泄漏),就会产生一个bug。用户错误:与bug不同,用户错误往往不是由应用程序作者,而是由运行程序的用户引起的。例如,如果你在代码中没有处理错误输入,当最终用户在文本框中输入格式非法的字符串时,很可能会产生用户错误。异常:异常往往是运行时的非正常情况,在编程时很难被估计到。异常可能包括试图连接一个已经不存在的数据库,打开已被破坏的XML文件,连接当前处于离线状态的机器等。在上述各种情况下,程序员和最终用户都无法完全控制这些异常情况。

.NET异常处理的作用结构化异常处理方案的优点:开发人员现在有了统一的,而且对领域内各种语言都通用的方式来处理错误。用以引发和捕获异常的语法,在不同程序集间或计算机间都是一致的。不再是通过接收意义模糊的数字常量来确定问题,而是可以通过异常,它们包含容易读懂的问题描述信息和首次触发异常时调用栈的详细快照。

异常处理的四要素一个表示异常详细信息的类型;一个向调用者引发异常类实例的成员;调用者的一段调用异常成员的代码块;调用者的一段处理(或捕获)将要发生异常的代码块。

System.Exception类型的核心成员属性作用Data此属性返回一个键丨值对集合(表示为一个实现接口的对象),提供有关该异常的更多程序员定义信息。该集合默认情况下为空HelpLink此属性返回一个URL,指向包含详细错误信息描述的帮助文件或网站InnerException此属性为只读,可用来获取导致当前异常发生的上一个(或上一组)异常的相关信息。上一个(或上一组)异常作为参数被传入当前异常的构造函数而被记录厂来Message此属性为只读,它返回指定错误的文字描述。错误信息本身就是构造函数的一个参数Source此属性返回引发该异常的程序集或对象的名称

引发普通异常构建Car类编写超速方法测试结果引发普通异常CurrentSpeed+=delta;if(CurrentSpeedMaxSpeed){CurrentSpeed=0;carIsDead=true;thrownewException(string.Format({0}已经超速,PetName));}elseConsole.WriteLine(当前速度:{0},CurrentSpeed);使用throw关键字引发异常

捕获异常try{for(inti=0;i10;i++)myCar.Accelerate(10);}catch(System.Exceptionex){Console.WriteLine(******错误!******);Console.WriteLine(方法:{0},ex.TargetSite);Console.WriteLine(消息:{0},ex.Message);Console.WriteLine(来源:{0},ex.Source);}输出异常内容捕获异常

配置异常状态TargetSite属性:帮助我们了解引发某个异常的方法的各种信息StackTrace属性:帮助我们标识引发异常的一系列调用HelpLink属性:能帮助用户找到具体的或包含更详细相关信息的标准Windows帮助文件Console.WriteLine(方法:{0},ex.TargetSite);Console.WriteLine(成员属于:{0},ex.TargetSite.DeclaringType);Console.WriteLine(成员类型:{0},ex.TargetSite.MemberType);Console.WriteLine(堆栈跟踪:{0},ex.StackTrace);Exceptionex=newException(string.Format({0}已经超速,PetName));ex.HelpLink=;throwex;Console.WriteLine(帮助的链接:{0},ex.HelpLink);捕获异常触发异常

配置异常状态Data属性:允许我们使用用户提供的相应信息(如时间戳)来填充异常对象if(CurrentSpeedMaxSpeed){CurrentSpeed=0;carI

您可能关注的文档

文档评论(0)

158****9376 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档