多语言展示
当前在线:1590今日阅读:60今日分享:41

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

C#中的异常是什么玩意?这东西是谁设计的?我们在.NET编程中如何使用它?
工具/原料

Visual Studio

方法/步骤
1

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

3

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

4

拿代码说话,打开我们的编程神器 Visual Studio.新建一个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可能弹出的也不一样. 因为软件都在升级嘛.

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的话,跳出一个异常,后面的代码就不继续执行了.

7

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

8

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

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吧!所以,在这种情况下,为了告诉你输入错误,就会抛一个异常给你,程序运行到这里就停止了,如果不处理的话,程序就死了.出现异常位置的地方,后面的任何代码都不会执行.

11

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

推荐信息