异常
- 异常:异常是在运行期间代码中产生的错误。
示例:
int[myArray ={1,2,3,4};
int myEle=my Array[4];/数组下标越界
运行到这里的时候,会出现异常,这个异常的定义已经在CLR中定义好了。如果我们不去
处理这个异常,那么当异常发生的时候,程序会终止掉,然后异常后面的代码都无法执
行。
开发环境 :用户未时候阶段
生产环境:写完代码之后,已经在软件上运行了状态,用户使用阶段
try-catch-finally
catch块用来捕捉异常,当代码发生异常,那么异常的类型和catch块中的类型一样的时候,就会执行该catch块,如果catch块的参数不写,表示发生任何异常都执行这个catch块
finally块包含了始终会执行的代码,不管有没有异常产生都会执行
int[] myArr = { 1, 2, 3, 4, 5 };
try
{
int temp = myArr[5];
}catch(IndexOutOfRangeException e)
{
Console.WriteLine("出现了数组下标越界的异常"); //这样即使在生产环境时候,用户体验出现了异常也不会导致程序崩溃
}
catch(Exception e)
{
Console.WriteLine("出现了异常");//出现异常时候怎么处理
}
finally
{
Console.WriteLine("不管是否出现异常,都会执行");
}
比如在与数据库连接时候,会因为各种原因导致异常,catch捕捉类似网络,地址错误等等,finally用来关闭连接数据库时候用的资源
编程题
让用户输入两个数字,用户可能会出入非数字类型,处理该异常,如果出现该异常就
让用户重新输入,输出这两个数字的和
Console.WriteLine("请输入两个数字,每行一个");
int n1 = 0, n2 = 0;
while (true)
{
try
{
n1 = Convert.ToInt32(Console.ReadLine());//Console.ReadLine是读取一行数据
n2 = Convert.ToInt32(Console.ReadLine());
break;
}
catch (FormatException)
{
Console.WriteLine("你输入的数据,不符合规则,请重新输入");
}
}
Console.WriteLine(n1 + n2);