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 @   HiBlack  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示