天极Yesky
  • 笔记本电脑
    笔记本
  • 台式电脑
    台式机
  • 手机
    手机
  • 电脑硬件DIY
    DIY硬件
  • CPU
    主板
    音箱
  • 硬盘
    显卡
    键鼠
  • 内存光驱
    显示器
    机箱电源

  • 数码相机DC
    数码相机
  • MP3播放器
    MP3/MP4
  • 数码摄像机DV
    摄像机
  • 电脑外设
    外设
  • 网络
    网络
  • 服务器
    服务器
  • 数字家庭
    数字家庭
  • 群乐
    群乐
  • 产品报价 行情 经销商 渠道 评测 | 软件 设计 网页 开发 安全 论坛 E时代 游戏 图片 壁纸 下载 网摘 博客 索尼专区 Vista 科技奥运
    天极网
    .NET中的异常处理
    作者: Peter Aitken
    出处: TechTarget
    责任编辑: Harte
    [ 2005-05-08 11:06 ]


      对程序员来说,异常—— 即运行期发生的错误——是一个不可避免的现象。好的程序开发方法能够最小化异常现象的发生,但要完全防止异常的发生是不可能的。有很多原因会造成异常现象,如网络错误或不正确地设置文件权限,这些都超出了程序开发人员的控制范围。这篇摘自Informit的文章介绍了如何过滤Catch语句来处理异常。

      在这篇文章中使用的是visual Basic,但此原理和技术同样可以应用于C#中。

      .NET framework执行结构化的异常处理方法。结构化的意思是指代码将可能造成异常现象。另外,用于处理异常现象的代码被组织在结构化的块中。你可以使用Try…Catch…End的Try语句来达到这个目的。

      在.NET的结构化异常处理过程中必须要有过滤Catch语句的能力。如果没有进行过滤 – 更精确些说是过滤所有的异常 – 则在执行Catch块中的代码时将会处理所有被弹出来的异常。这种Catch块的写法如下:
      Catch ex As Exception

      在上面的Catch块中,对象ex是系统的一个实例,Exception类包含异常信息。尽管传统的用法是使用ex或e,你也可以使用其他合法的变量名。要过滤特殊的异常,Catch语句将写成这样:
      Catch ex As ExceptionType

      将ExceptionType替换成所捕捉到的某个特殊的异常名。.NET framework为许多异常类定义了一个层次级别,这些异常类都来源于系统。每个异常类中都包含着一些相关的异常。例如,所有的与文件相关的异常都属于IoException类,但想要得到更详细的控制信息,你就需要使用FileLoadException和FileNotFoundException类来捕获文件装载异常。在Visual Studio文档中含有完整的异常层次等级图。

      这种过滤能力可以让你的Catch语句块来处理特殊的异常。这种处理特殊异常的过滤能力是很有意义的。不同的异常类型,会使得用户得到的消息和程序的响应也不一样。为每一种情况创建一个Catch语句块,最后一个Catch语句块是当前面的Catch块都不匹配时才执行。下面是这个例子的代码:

    Catch ex As FileNotFoundException
    ' Code here to respond to a "File Not Found" exception.
    Catch ex As FileLoadException
    ' Code here to respond to a "File Load" exception.
    Catch ex As Exception
    ' Code here to respond to any exceptions not caught by previous Catch statements.

      在Catch ex As Exception语句中,Catch关键字将捕获任何的异常。但不足的地方是,在那个块中不含有任何关于异常和造成异常原因的Exception对象。

    笔名:
    请您注意:

     遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

     天极网拥有管理笔名和留言的一切权利。
    相关内容

  • 项目结构最佳实例(2005-05-12 10:27)
  • NET的丰富资源:.Net2TheMax(2005-05-13 10:25)