VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#异常处理

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  异常介绍

  1、System.Exception类

   Message属性:发生异常的原因和异常的内容

   Souce属性:抛出异常程序集的名称

   StackTrace属性:发生异常的方法调用情况

   InnerException属性:次异常中包含的异常

  2、try{}catch{}finally{}

  处理异常

  1、不带参数的catch和catch(Exception)是有区别的

   catch(Exception)可以捕获所有以Exception类派生的异常,而不带参数的catch可以捕获所有异常,不管异常是不是从Exception类派生。

  2、与catch配套的catch和finally是可选的,但二者必选其一。一个try可对应多个catch,但一个try只能对应一个finally。

   3、不论try中是否发生异常,finally中的语句一定会被执行。

  异常传播

   如果异常发生后,没有被相应的catch捕获,那么异常将沿调用堆栈逐渐向上传递,直到遇到合适的catch语句或传递到最底层的调用方法为止。如都没有找到相应的catch,则异常交付.net公共语言运行时,公共语言运行时弹出一个对话框来显示异常信息。

  抛出异常throw

  1、throw 变量名;

   必须是Exception异常或有Exception派生的类型

  2、throw;

   这个throw语句只有一个throw关键字,只能用在catch语句块中,该语句的意思是抛出当前catch语句所捕获的异常。

  自定义异常

  遵循原则

   1、避免使用深的异常类继承层次结构

   2、自定义异常类必须继承System.Exception类或其他几种基本常见异常类

   3、自定义异常类名称要以Exception结尾

   4、自定义异常类应该可以序列化

   5、自定义异常类应该至少实现与Exception类相同的以下四个构造函数

   public MyException(){}

   public MyException(string message){}

   public MyException(string message,Exception inner){}

   protected MyException                  (System.Runtime.Serialization.SerializationInfo                                    info,System.Runtime.Serialization.StreamingContext context){}

  6、自动插入自定义异常类框架

   在编辑器中输入Exception并按<Tab>键,即可得到自定义异常类框架。



相关教程