电子课件本章常见错误.pptxVIP

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多

本章常见错误本讲大纲:1、所有异常都使用try…catch语句捕获的问题支持网站:2、在try语句中使用return,finally语句会不会执行

所有异常都使用try…catch语句捕获的问题(1)开发应用程序的过程中检测代码可能发生的错误并进行正确处理是必需的,理想情况下,应用程序中每行代码都按预想的运行,要用到的每种资源总是可以利用。但是,在现实世界中却没有那么顺利,程序设计人员可能会犯错,网络连接可能会中断,数据服务器可能会停止运行,资源可能找不到。总之,编写的代码必须能够检测出类似这些错误并采取相应的对策。.NET框架中提供了一种被称作结构化异常处理(SEH)的机制,用于处理代码可能出现的各种错误,这就是try…catch语句。使用try将您认为可能会生成异常的代码块括起来,使用catch将发生异常时要执行的代码括起来,如下面的结构化异常处理代码:objectobj;DateTimedt;try{obj=newobject();dt=(DateTime)obj;}catch(InvalidCastExceptionex)//无效类型转换异常{Console.WriteLine(ex.Message);}catch(InvalidOperationExceptionex)//无效操作异常{Console.WriteLine(ex.Message);}catch//其他异常{Console.WriteLine(程序运行出错!);}finally//必须执行的代码块{dt=Convert.ToDateTime(1900-01-01);}

所有异常都使用try…catch语句捕获的问题(2)说明:上面代码中,将object类型强制转换为DateTime类型时会引发无效类型转换异常(InvalidCastException),这时会执行catch(InvalidCastExceptionex)代码块中的代码。.NET中使用结构化异常处理的原则是在所有可能出错的地方都要加上结构化异常处理代码,因为这样能够保证在错误发生时,正确释放所有资源。但是盲目地针对每种异常都使用异常处理是不必要的,因为异常处理是一种耗费资源的机制,每当异常被抛出时,异常堆栈都将被建立,异常信息将被加载,通常这些工作成本相对较高。例如,上面代码所示的类型转换异常处理方式可使用is或as语句代替,代码如下:objectobj;DateTimedt;obj=newobject();if(objisDateTime){dt=(DateTime)obj;}else{Console.WriteLine(类型转换无效!);}

在try语句中使用return,finally语句会不会执行(1)try语句块主要用来捕获程序运行时的异常,catch语句块用来处理异常,或者说将发生异常时要执行的代码括起来,但无论是否有异常,最后一定会执行finally语句块中的代码。那么在try语句块中使用return语句,程序会出现什么样的情况呢?如下面的示例。在try语句块中使用return语句,代码如下:staticvoidMain(string[]args){try{inti=5;objectobj=i;//整型变量装箱操作if(objisint)//判断类型{intj=(int)obj;//拆箱操作Console.WriteLine(类型转换成功!);return;//使用return语句}else{Console.WriteLine(类型不正确!);}}catch(InvalidCastExceptionex)//这里是处理异常的语句块{Console.WriteLine(ex.Message);//输出异常信息}finally//finally语句{Console.WriteLine(必须执行finally语句块);//若执行finally语句,则输出此信息Console.Read();}}

在try语句中使用return,finally语句会不会执行(2)上面程序的运行结果如图所示。从上面的运

文档评论(0)

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

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

1亿VIP精品文档

相关文档