异常实际上是程序中错误导致中断了正常的指令流的一种事件.(你可以认为异常是任何中断 正常程序流程的错误条件)。 产生异常的条件: 1:想打开的文件不存在 2:网络连接中断 3:调用空引用 4:除0异常 。。。。 由于C#是面向对象,所有所有的错误被封装在异常对象中 一旦错误发生,将接收到一个特定的异常对象。 二、异常类 .NET Framework 类库中的所有异常都派生于 Exception 类,异常包括系统异常和应用异 常。 默认所有系统异常派生于 System.SystemException,所有的应用程序异常派生于 System.ApplicationException。 系统异常一般不可预测,比如内存堆栈溢出,空对象引用,权限限制,硬件读取错误等等 应用程序异常一般可以预测,比如文件对象找不到啦,值不在范围内啦,数据类型不一致等 等,设计,处理逻辑可以判断的。 常见的异常类如下图所示: 常见的系统异常类如下表所示: 异常类 说明 System.OutOfMemoryException 用 new 分配内存失败 System.StackOverflowException 递归过多、过深 System.NullReferenceException 对象为空 Syetem.IndexOutOfRangeException 数组越界 System.ArithmaticException 算术操作异常的基类 System.DivideByZeroException 除零错误 三、异常处理 在 C# 语言中异常与异常处理语句即 try ... catch... finally。 在上述异常处理的形式中所用到关键字其含义如下: try:用于检查发生的异常,并帮助发送任何可能的异常。 catch:以控制权更大的方式处理错误,可以有多个 catch 子句。 finally:无论是否引发了异常,finally 的代码块都将被执行。 四、自定义异常 虽然在 C# 语言中已经提供了很多异常处理类,但在实际编程中还是会遇到未涉及的一些异 常处理。 例如想将数据的验证放置到异常处理中,即判断所输入的年龄必须为 18〜45,此时需要自 定义异常类来实现。 自定义异常类必须要继承 Exception 类。