处理异常提供的四个关键字,try...catch...finally...throw
finally 最后,不管异常是否被抛出都会执行,例如 打开一个文件,不管是否出现异常都需要关闭,
throw: 当问题出现的时候 程序可以抛出一个异常,使用throw关键字抛出异常,
try{执行的代码}
catch(ExceptionName e1){处理异常 throw 抛出异常}
catch(ExceptionName e1){处理异常 throw 抛出异常}
finally{执行的代码}
Test t1 = new Test();
try
{
Console.WriteLine("1");
t1.Age = 250;
Console.WriteLine("2");
}
Exception 可以捕获所有的错误类型,如果写的不同类型的错误的时候只能捕获对应类型的错误,例如
FormatException(格式错误) ObjectDisposedException(超出有效范围) IndexOutOfRangeException(数组越界) DataMisalignedException(除数为0); 所以一般把Exception 捕获所有错误类型catch 写到最后
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine("3");
// throw e; 抛出错误 立马停掉
// 解决异常 一般不要直接在catch 直接throw
// 2.一般在catch 复制一个合法的值
t1.Age = 20;
}
finally
{
Console.WriteLine("4");
}
Console.WriteLine(t1.Age);
Test类
class Test
{
private int age = 10;
public int Age
{
set
{
if (value>0 &&value < 150)
{
age = value;
}
else
{
// 如果超过150 处理抛出一个异常
// IndexOutOfRangeException 索引超出范围的异常
throw new IndexOutOfRangeException("age must less 150");
}
}
get
{
return age;
}
}
}