电子课件本章常见错误_第1页
电子课件本章常见错误_第2页
电子课件本章常见错误_第3页
电子课件本章常见错误_第4页
电子课件本章常见错误_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本章常见错误

本讲大纲: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)上面程序的运行结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论