C# 异常处理
try、catch 和 finally 关键字
Console.WriteLine("请输入0-10之间想要查看的序号");int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };int a = int.Parse(Console.ReadLine());try //要捕获的代码 可能会出现异常的代码 捕获阶段{Console.WriteLine(num[a]);}//要捕获的异常 (异常类) 捕获异常之后做的操作 没有异常 就不执行// Exception 所有异常// catch 块中的参数也可以不写 如果不写 表示发生任何异常都执行这个catch块catch (IndexOutOfRangeException ex){//可以通过Exception 异常类的对象ex 获取到具体的异常是由谁引起的// 如果在捕获异常阶段 不知道要捕获的具体异常类是谁时 使用Exception//Console.WriteLine(ex);Console.WriteLine("输入的数字有误,请重新输入");a = int.Parse( Console.ReadLine());Console.WriteLine(num[a]);//throw 抛出异常//throw ex;}catch (ArrayTypeMismatchException ex2){Console.WriteLine("数组类型不匹配");}// 不管有没有异常 都执行// 可有可无finally{Console.WriteLine("111111");}
练习:让用户输入两个数字,用户可能会出入非数字类型,处理该异常,如果出现该异常就用户重新输入,输出这两个数字的和
while (true)
{Console.WriteLine("请输入两个数字:");try{int a = int.Parse(Console.ReadLine());int b = int.Parse(Console.ReadLine());Console.WriteLine("两个数字的和为:"+(a + b) );break;}catch{Console.WriteLine("输入的不是数字,请重新输入");}
}