知识点一:异常
程序错误的分类:
编译错误:
VisualStudio能够检测的到,编译通不过;
实例化非当前命名空间的类没有导入命名空间;变量没有定义就使用;局部局部变量没有初始化就使用;
逻辑错误:
VisualStudio检测没问题,编译没有问题,和实际要达到的效果不符合;
while循环没有终止条件;swith语句没有写break代码
异常:
VisualStudio检测没问题,编译能通过,逻辑也正确,但是在一些不可控的情况下出现的错误,并且会影响到程序的正常运行(程序会崩溃)
被除数为零,Command对象执行的sql语句错误,类型转换错误
异常处理,但是这些不可控的情况是可以预测的,针对这些情况,我们可以进行异常处理
针对类型转换,被除数为零这样的异常,出现的可能性太高了,并且可以从逻辑上先进行判断,没有必要进行try...catch;
但是针对数据库操作,文件操作这样的异常,逻辑上判断不可控,而且只在特定的情况下出现,就需要进行try...catch;
常见异常举例,数学异常;类型转换异常,数据库连接异常,文件操作异常
语法:
try ... catch结构
try ... catch ... finally 结构
try ... finally 结构
异常代码示例:
int num1 = 4;
int num2 = 0;
try
{
Console.WriteLine(num1 / num2);
}
catch (DivideByZeroException e)
{
Console.WriteLine(e.Message) ; //捕捉到异常
}
catch (Exception e)
{
Console.WriteLine(e.Message);
//DivideByZeroException是继承值Exception类的,作用范围比Exception类要小
//所以DivideByZeroException的catch要写在Exception之前;
//Exception