14、异常处理201006081439298125.pptVIP

  • 0
  • 0
  • 约4.52千字
  • 约 14页
  • 2018-05-19 发布于四川
  • 举报
大连海辉软件培训中心 海辉培训 .NET 应用开发技术 异常处理 * 内容和目标 错误和异常 C# 中的异常处理结构 try…catch 语句 try …catch…finally 语句 try…finally 语句 throw 语句 异常类的层次结构 处理异常的原则和技巧 错误和异常 编写应用程序不可避免地会发生一些错误 错误有如下几种类型 编译时错误 逻辑错误 运行时错误 运行时错误是应用程序运行的时候遇到的任何错误情况或意外行为,被称为异常,如除数为0、操作系统资源不可用等 异常从发生问题的代码区域引发,然后沿堆栈向上传递,直到应用程序处理它或程序终止 * class Test { static void Main() { int x, y, z; x = 10; y = 0; z = Divide(x, y); } static int Devide(int a , int b) { return a/b ;//b为0时,发生异常 } } 异常处理 在 .NET 中,提供了结构化的异常处理机制,帮助处理程序运行时发生的错误 当异常发生时,运行库会创建一个异常(Exception)对象来表示该异常,这个对象包含有助于跟踪问题的信息 Exception 类是所有异常的基类,主要属性有 Message—获取对当前异常的描述信息 Source—获取或设置导致当前异常的应用程序或对象的名称 TargetSite — System.Reflection.MethodBase对象,获取引发当前异常的方法 * class Test { static void Main() { int x, y, z; x = 10, y = 0; try{ z = Divide(x, y); } catch(Exception e) { Console.WriteLine(“Message:” + e.Message); Console.WriteLine(“Source:” + e.Source); Console.WriteLine(“Method:” + e.TargetSite.Name); } } static int Devide(int a , int b) { return a / b ; //b为0时,发生异常,异常将被传递给调用方,即 Main 方法 } } 异常处理的结构-1 异常处理的基本结构形式 异常处理的结构分为三种类型的代码块 try块包含程序正常操作的代码,但这些代码可能会产生某些错误 catch块包含处理错误的代码,这些错误是try块中的代码产生的 finally块包含的代码通常用于资源清理;或者执行在try块或catch块执行后的其他操作 * try { //正常操作代码 } catch { //错误处理代码 } finally { //清理资源代码 } 异常处理的结构-2 异常处理的基本结构形式 try 块为必选,只能有一个 finally块可以省略,如果有则只能有一个 catch块可以有任意多个,用于处理不同类型的错误;但 catch 块过多会降低应用程序性能,应予避免 catch块可以省略(此时必须有 finally块),用于不处理异常但执行资源清理代码 * try { //正常操作代码 } catch { //错误处理代码 } finally { //清理资源代码 } 异常处理的结构-3 try块中的代码执行时如果发生错误,系统会创建一个特定类型的异常对象并将其“抛出”,这个异常对象会被某个 catch 块“捕获”,在 catch 块中进行相应的处理或继续向上抛出,最后执行 finally 块中的代码进行资源的清理 * try { //正常操作代码 } catch { //错误处理代码 } finally { //清理资源代码 } 异常的类层次结构 .NET 中的 Exception 类是所有异常的基类,由它派生出各种特定类型的异常类 常用的异常类 IndexOutOfRangeException –- 数组下标越界 NullReferenceException—对null对象调用了方法或属性 ArgumentException-调用方法参数错误 InvalidCastException—数据类型转换错误 OutOfMemoryEx

文档评论(0)

1亿VIP精品文档

相关文档