第13章异常处理和不安全代码
本章主要介绍程序的异常处理,内容包括异常处理的机制、捕捉异常、异常处理、抛出异常、重抛异常、异常链接;还包括指针以及不安全代码的处理。本章学习的目标包括:理解异常机制和异常类的层次结构;掌握异常处理的一般步骤和过程;能够自定义异常类和重抛异常;理解C#中对不安全代码的管理。
主要内容
基本概念
异常(Exception)是指程序执行期间发生了问题,一般是非预料之中的错误。有异常的程序通常是指有可能发生问题,但并不频繁。例如,x和y为浮点数,做除法x/y时,通常情况下能够正确执行;可当y为0时就会出现问题,这时,系统会终止正在运行的程序。
通常情况下,异常会终止用户程序,并发出一条系统提供的错误信息。
异常处理(Exception Handing)指的是一种机制或者方法,通过它,用户创建的应用程序能够解决或处理异常。一般情况下,通过对异常进行处理,程序就如同没有出现过问题一样可以继续执行,而不是被强行终止。
异常类
在面向对象的语言中,异常是面向对象规范的一部分。异常也称为差错或违例,是特殊的运行错误对象,对应着C#特定的运行错误处理机制。
C#,是出现运行错误时,系统或用户引发的一个对象或者一个对象的基类。C#有一个异常处理机制,但只允许引发和捕捉Exception类的对象及其派生类。
异常的层次结构
#异常的基类,其派生类包括以下几类:
:最重要的派生类之一。它由用户程序而不是由公共语言运行库引发,作为一种区分应用程序定义的异常与系统定义的异常的方法而提供。
:独立存储异常,在缺少证据或无效操作时发生。
:生成Web服务描述语言WSDL的过程中发生错误时将引发的异常,由远程处理 WSDL生成器生成。
:分析Web服务描述语言WSDL的过程中发生错误时将引发的异常,由远程处理 WSDL分析器生成。
:最重要的派生类之一。当发生非致命的、可由用户程序恢复的错误时,公共语言运行时引发该类对象。
:引用处于无效状态的 ActiveX 控件时引发的异常。
公共异常类
:在算术运算期间发生的异常(如 和 )的基类。
:当存储一个数组时,如果由于被存储的元素的实际类型与数组的实际类型不兼容而导致存储失败,就会引发此异常。
:在试图用零除整数值时引发。
:在试图使用小于零或超出数组界限的下标索引数组时引发。
:当从基类型或接口到派生类型的显式转换在运行时失败时,就会引发此异常。
:在需要使用引用对象的场合,如果使用 null 引用,就会引发此异常
:在分配内存(通过 new)的尝试失败时引发。
:在 checked 上下文中的算术运算溢出时引发。
:当执行堆栈由于保存了太多挂起的方法调用而耗尽时,就会引发此异常;这通常表明存在非常深或无限的递归。
:在静态构造函数引发异常并且没有可以捕捉到它的 catch 子句时引发。
异常处理
异常处理的一般步骤
异常发生
抛出
异常
运行时
系统
强
制
抛
出
生
动
自
成
异常类
对象
异常处理代码
捕获
异常
捕
98系列建筑标准设计图集--防雷与接地工程 来自淘豆网m.daumloan.com转载请标明出处.