什么是异常:异常是程序在执行是发生的错误。
导致异常的原因:
一、代码错误,包括语法错误、逻辑错误
二、资源不可用,这是由系统访问了未经授权的资源而引起的错误。
三、公共语言运行库,这是有CLR内部引起的错误。
Exception | 左右异常的基类型 |
ApplicationException | 发生非致命应用程序错误时引发的异常 |
SystemException | 为system命名空间中预定义异常定义基类 |
system.AccessViolationException | 在实图读写受保护内存时引发的异常 |
System.ArgumentException | 在向方法提供一个参数无效时引发的异常 |
System.IndexOutOfRangeException | 访问数组时因元素索引超出数组边界而引发的异常 |
System.Collections.Generic.KeyNotFoundException | 指定用于访问集合中元素的键与集 合中的任何键都不匹配时所引发的异常。 |
System.InvalidCastException | 因无效类型转换或显示转换引发的异常 |
System.InvalidOperationException | 当方法调用对于对象的当前状态无效时引发的异常 |
System.InvalidProgramExcption | 当程序包含无效Microsoft中间语言或元数据时将引发的异常。这通常表示生成程序的编译器中有Bug。 |
System.IO.IOException | 发生I/O错误时引发的异常。 |
System.NotImplementedException | 在无法实现请求的方法或操作时引发的异常。 |
System.NullReferenceException | 尝试对空对象引用进行操作时引发的异常 |
System.OutOfMemoryException | 没有足够的内存继续执行程序时引发的异常。 |
System.StackOverflowExcepion | 挂起的方法调用过多而导致执行堆栈溢出时引发的异常。 |
System.ArgumentNullException | 当将空引用传递给不接受它作为有效参数的方法时引发的异常。 |
System.ArgumentOutOfRangeException | 当参数值超出调用的方法所定义的允许取值范围时引发的异常。 |
System.DivideByZeroException | 试图用零除整数或十进制数值时引发的异常 |
System.NotFiniteNumberException | 当浮点值为正无穷大、负无穷大或非数字时引发的异常。 |
System.OverflowException | 在选中的上下文中进行的算术运算、类型转换或转换操作导致溢出时引发的异常。 |
System.IO.DirectoryNotFoundException: | 当找不到文件或目录的一部分时引发的异常 |
System.IO.DriveNotFoundException: | 当尝试访问的驱动器或共享不可用时引发的异常。 |
System.IO.EndofSreamException: | 读操作试图超出流的末尾时引发的异常。 |
System.IO.FileLoadException: | 当找到托管程序集却不能加载它时引发的异常。 |
System.IO.FileNotFoundException: | 试图访问磁盘上不存在的文件失败时引发的异常 |
System.IO.PathTooLongException: | 当路径名或文件名超过系统定义的最大长度时引发的异常 |
try……catch……finally
try:包含抛出异常的代码
catch:包含抛出异常是要执行的代码
finally:包含始终会执行的代码。如果产生异常则在try 块之后执行,如果处理了异常,就在catch块后执行
处理异常方法参考