admin 管理员组

文章数量: 887034


2024年2月23日发(作者:安全员c证考试题库)

C# 内部异常

在.NET Framework中,异常是从Exception类继承的对象。ion异常类派生于,通常情况下不在代码中抛出这个ion对象,因为它无法确定错误情况的本质。但用户可以使用派生于ion类的异常类对象来更明确表示异常。内部异常也称为预定义异常,它是.NET中使用的内部异常类的对象。如表7-4所示列出了.NET中使用的内部异常类:

表7-4 .NET中使用的内部异常类

内部异常类

SystemException

说明

所有由运行时环境抛出的异常的基类。通常由.NET运行库生成,也可以由应用程序生成。例如,如果.NET运行库检测到堆栈已满,就会抛出StackOverflowException。另一方面,如果检测到调用方法时参数不正确,可以在自己的代码中选择抛出ArgumentException或其子类。Exception的子类包括表示致命错误和非致命错误的异常

ApplicationException 这个类非常重要,因为它是第三方定义的异常基类。如果自己定义的异常覆盖了应用程序独有的错误情况,就应使它们直接或间接派生于ationException

StackOverflowException 如果分配给堆栈的内存区域已满,就会抛出这个异常。如果一个方法连续地递归调用它自己,就可能发生堆栈溢出。这一般是一个致命错误,因为它禁止应用程序执行除了中断以外的其他任务。在这种情况下,甚至也不可能执行finally块,通常用户自己不能处理像这样的错误,而应退出应用程序

EndOfStreamException

OverflowException

IndexOutOfRangeException

InvalidCastException

InternalBufferOverflowException

InvalidDataException

IOException

ArgumentException

AugumentNullException

ArithmeticException

在数据流的格式无效时引发的异常

发生I/O错误时引发的异常

所有参数异常的基类

该异常由不允许空参数的方法抛出

因算术运算、类型转换或转换操作中的错误而引发的异常

这个异常通常是因为读到文件末尾而抛出的

如果要在checked环境下把包含值–40的int类型数据转换为uint数据,就会抛出这个异常

当出现数组越界时,将抛出该异常

因无效类型转换或显式转换引发的异常

内部缓冲区溢出时引发的异常

FormatException

ExternalException

SEHException

当方法调用中实参的格式不符合对应的形参类型的格式时,该异常将被抛出

该类异常在运行库的外部环境中发生,或者是针对这个类型环境的异常的基类

该异常类封装了Win32结构化异常处理信息


本文标签: 错误 抛出 情况 应用程序