首页 > 编程 > C# > 正文

C#的异常类Exception

2023-05-05 19:01:39
字体:
来源:转载
供稿:网友

我们在设计程序时,为了保证程序的安全性,我们经常把可能发生错误的代码段放在try...catch块中,来捕捉可能发生的错误,并给予处理。当然这种错误不是程序的语法错误,也不是在编译时能发现的错误,只有程序运行时才可能出现的错误,如用户输入的被除数为零;数组越界;链接数据库时,指定的数据源不存在;查询数据库时,指定的表或列不存在等,都有可能引发程序发生异常。

在C#中提供了异常处理的方法,即如下语句块:

try{...}
        catch(){...}
        finally{...}

其中,try块中放入可能出错的语句,catch块中添加异常发生时的处理语句,finally块中的语句不管异常是否发生都要被执行,当然finally语句块也可以省略。

在catch语句的()中声明异常类的实例以在其块中进行使用。常用的异常类如下:

1、与参数有关的异常类

此类异常类均派生于System.Exception,用于处理给方法成员传递的参数时发生异常.

(1)ArgumentException类:该类用于处理参数无效的异常,除了继承来的属性名,此类还提供了string类型的属性ParamName表示引发异常的参数名称。

(2)FormatException类:该类用于处理参数格式错误的异常。

2、与成员访问有关的异常

(1) MemberAccessException类:该类用于处理访问类的成员失败时所引发的异常。

失败的原因可能的原因是没有足够的访问权限,也可能是要访问的成员根本不存在(类与类之间调用时常用)

(2) MemberAccessException类的直接派生类:

i、FileAccessException类:该类用于处理访问字段成员失败所引发的异常

ii、MethodAccessException类:该类用于处理访问方法成员失败所引发的异常

iii、MissingMemberException类:该类用于处理成员不存在时所引发的异常

3、与数组有关的异常

(1)IndexOutOfException类:该类用于处理下标越界所引发的异常

(2)ArrayTypeMismatchException类:该类用于处理在数组中存储元素的数据类型不匹配所引发的异常

(3)RankException类:该类用于处理维数错误所引发的异常

4、与IO有关的异常

(1)IOException类:该类用于处理进行文件输入输出操作时所引发的异常。

(2)IOException类的5个直接派生类:

i、DirectionNotFoundException类:该类用于处理没有找到指定的目录而引发的异常。

ii、FileNotFoundException类:该类用于处理没有找到文件而引发的异常。

iii、EndOfStreamException类:该类用于处理已经到达流的末尾而还要继续读数据而引发的异常。

iv、FileLoadException类:该类用于处理无法加载文件而引发的异常。

v、PathTooLongException类:该类用于处理由于文件名太长而引发的异常。

5、与算术有关的异常

(1)ArithmeticException类:该类用于处理与算术有关的异常。

(2)ArithmeticException类的派生类:

i、DivideByZeroException类:表示整数货十进制运算中试图除以零而引发的异常。

ii、NotFiniteNumberException类:表示浮点数运算中出现无穷打或者非负值时所引发的异常。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表