异常处理
第一节 .net异常处理基础
1、 异常概述:
a、 定义:程序运行时所引发的错误。异常不等同于bug,它是bug的一种表现形势。
b、 机制:.它由clr负责实现,是独立于编程语言的。当程序出现运行错误时,clr会创建一个异常对象,异常对象通常是一个exception类(或其派生的子类)的实例。
c、 若异常出现,应用程序没有编写代码处理异常,clr会强行结束整个进程。
2、 try、catch和finally
try
{
//可能引发异常的语句 ---------try语句块(1)
}
catch(exception e)
{
//对异常进行处理的语句 ---------catch语句块(2)
}
finally
{
//打扫“战场”的语句 --------- finally语句块(3)
}
【解释】:
a、若正常运行,执行流程为第(1)块→第(3)块
b、若非正常运行,执行流程为第(1)块→第(2)块→第(3)块
c、其中finally语句是可选的,主要用于解决资源泄露问题,如文件句柄。
3、异常基类exception:
a、exception的重要属性和方法
a.1 e.gettpye() 获取异常的类型
a.2 e.message 告诉用户发生了什么事
a.3 e.stacktrace 确定错误发生的位置,如果有可用的调试信息(程序名.pdb文件存在),还可显示源文件名和程序行号
a.4 targetsite 获取引发当前异常的方法。
b、常用异常类
b.1 arithmeticexception: 在算术运算期间发生的异常(如dividebyzeroexception 和 overflowexception)的基类
b.2 dividebyzeroexception 在试图用零作除数时引发
b.3 indexoutofrangeexception 在试图使用小于或超出数组界限的下标索引数组时引发
b.4 invalidcastexception 从基类型或接口到派生类型的显式转换在运行时失败,引发此异