C# 异常处理

使用try...catch...finally语句

 1 int[] myArr = { 1, 2, 3, 4 };
 2 
 3 try
 4 {
 5     int tmp = myArr[4]; //容易出现异常的语句
 6 }
 7 catch(IndexOutOfRangeException e) //括号内是出现异常的类型,可以不写(),将会捕获所有类型的异常
 8 {
 9     //异常出现的处理方式
10     Console.WriteLine(e.Message);
11 }
12 catch(FieldAccessException e)   //没有此类型异常则不会运行cathch中的代码
13 {
14     Console.WriteLine(e.Message);
15 }
16 finally
17 {
18     //无论是否出现异常,此模块的代码都会执行
19     Console.WriteLine("Finally部分");
20 
21 }
22 Console.Write("使用try catch语句,遇到错误不会中断代码,而会执行到最后");

 

try catch 使用实例:输入两个数字,并求他们的和

 1 int num1 = 0, num2 = 0;
 2 Console.WriteLine("请输入两个数字,用空格隔开");
 3 
 4 ////只能捕获一次的情况
 5 //try
 6 //{
 7 //    string str = Console.ReadLine();
 8 //    string[] strArr = str.Split(" ");
 9 //    num1 = Convert.ToInt32(strArr[0]);
10 //    num2 = Convert.ToInt32(strArr[1]);
11 //}
12 //catch
13 //{
14 //    Console.WriteLine("非法输入,请重新输入两个数字,用空格隔开");
15 //    string str = Console.ReadLine();
16 //    string[] strArr = str.Split(" ");
17 //    num1 = Convert.ToInt32(strArr[0]);
18 //    num2 = Convert.ToInt32(strArr[1]);
19 //}
20 //finally
21 //{
22 //    Console.WriteLine("{0}+{1}={2}", num1, num2, num1 + num2);
23 //}
24 
25 //使用循环捕获异常,直到异常消失
26 while (true)
27 {
28     try
29     {
30         //在try块内,某行代码出现异常,则之后的代码都不会执行,转而执行catch
31         string str = Console.ReadLine();
32         string[] strArr = str.Split(" ");
33         num1 = Convert.ToInt32(strArr[0]);
34         num2 = Convert.ToInt32(strArr[1]);
35         break;  //try块内代码执行完毕,才会执行到break
36     }
37     catch
38     {
39         Console.WriteLine("非法输入,请重新输入两个数字,用空格隔开");
40     }
41 }
42 Console.WriteLine("{0}+{1}={2}", num1, num2, num1 + num2);

 

posted @ 2023-02-16 17:15  HiBlack  阅读(37)  评论(0)    收藏  举报