C#中的异常是什么及如何使用?

 时间:2024-10-18 05:27:42

1、首先从字面意思理解一下,异常就是跟平常状态不一样.程序运行时发生了和正常状态不一样的情况,有人叫Bug!比如我们做了一个计算器,用户输入一个5除以0. (5/0)我们小学都学过,除数不能为0,这是错误的.但如果用户输入5/2,就不会出现错误.所以,在这种情况下,我们写的这个计算器软件就可能会发生异常.

2、我们严谨一点针对程序员的异常解释.就是你写一段代码往往需要一些参数和条件才执行这段代码,你预期的参数和条件和实际的参数和条件不吻合. 比如你开发了一个管理系统,你设置的最大金额是100万,但是后来有人输入了1000万,这就是很危险的异常. 和你预期的完全不一样.

3、我们经常看到以下异常,你都可以理解成,这是操作系统底层异常代码处理给你显示出来,当然我们自己也可以抛异常. 和我们接下来C#中的异常处理其实其实完全一样.只不过那个时候,不叫异常,而是通过一个返回值来决定,返回一个数字.

C#中的异常是什么及如何使用?
C#中的异常是什么及如何使用?

4、拿代码说话,打开我们的编程神器 Visual Studio.新建一个C#控制台程序.

C#中的异常是什么及如何使用?

5、我们写一段这样的代码: double 被除数 = 5; double 除数 = 0; double 商 = 0; 商 = 被除数 / 除数; Console.WriteLine("{0}/{1}={2}", 被除数, 除数, 商); Console.ReadKey();===============================我用的是visual studio 2013它给我输出了:5/0=正无穷大.这是C#内部的异常检测,也是微软公司设计C#的程序员提前给我们写好的异常检测代码,有一段隐藏的代码会检测我们的除数是否为0,如果是0的话,就会弹出这个,当然不同的版本VS可能弹出的也不一样. 因为软件都在升级嘛.

C#中的异常是什么及如何使用?

6、那么我们现在自己来写一段异常检测写一段以下代码,我们按F5来执行这段代码. double 被除数 = 5; double 除数 = 0; double 商 = 0; if (除数 == 0) { throw new Exception("除数不能为0"); } 商 = 被除数 / 除数; Console.WriteLine("{0}/{1}={2}", 被除数, 除数, 商); Console.ReadKey();===========================================throw是C#中的关键字,它的意思是抛.new Exception 创建一个异常对象,并且把异常提示的关键字当成参数写进去.我们自己检查了一下代码,如果除数为0的话,跳出一个异常,后面的代码就不继续执行了.

C#中的异常是什么及如何使用?

7、按F5执行我们的代码看看.

C#中的异常是什么及如何使用?

8、我们把除数改成2,再按F5,运行程序看看效果.不错,达到了我们心中预期的效果.我们可以看到,异常不是每次都弹出,只要除数为0的时候,才会弹出异常.

C#中的异常是什么及如何使用?

9、异常的机制是为了保证程序可以一直正常运行!如果我们没有异常机制.那么我们来写一行代码:Convert.ToInt32("123");这一行代码的内部是对我输入的123进行展开.怎么样展开呢? 1*100+2*10+3.当然,这是微软的程序员给我们封装好的.但是我们来思考一下,如果我们自己写Convert.ToInt32.而不是调用C#里面给我们写好的.你要把一个文本123转换成数字123是不是用这个方法?

10、如果我们写好 Convert.Toint32这个函数了.但是用户使用的时候,输入的不是123.而是Convert.ToInt32("abc");那怎么办?你总不能写成 a*100+b*10*+c吧!所以,在这种情况下,为了告诉你输入错误,就会抛一个异常给你,程序运行到这里就停止了,如果不处理的话,程序就死了.出现异常位置的地方,后面的任何代码都不会执行.

C#中的异常是什么及如何使用?

11、那么我们怎么来解决这个问题呢!按照以下代码.但我们除数不为0正常的时候,软件就会正确执行try里面的代码.try{}里面代表可能会出错的异常代码.但是如果为0的话,直接就会进入catch(){},而异常后面的代码将不再执行.try代表尝试是否有异常.catch代表如果有异常,我就抓住.并且把异常赋值给ex然后把具体的异常信息显示出来.也就是ex.Message/

C#中的异常是什么及如何使用?
  • 手机卡号怎么查
  • 怎么激活手机号
  • 移动手机卡芯片坏了网上补卡需不需要激活?
  • 新办的卡怎么知道手机号
  • 联通怎么查询是否有黑名单号码
  • 热门搜索
    中秋节手抄报一等奖 推广普通话的手抄报 数学手抄报图片四年级 感恩母亲的手抄报图片 新型冠状病毒的手抄报 六一手抄报内容简短 新冠状病毒手抄报 八一建军节手抄报内容 六年级语文手抄报 珍爱生命预防溺水手抄报图画