C#异常处理

来源:互联网 发布:布谷布谷软件 编辑:程序博客网 时间:2024/06/14 07:12

【前言】       

       现在自己编写一个小程序都有很多的问题,日后和团队一起编写一个复杂的程序那问题就更多了,所以在编写程序时,不仅要注意程序代码的准确性,还要处理程序中可能出现的异常情况,通过看楚广明老师的视频和一本《C#从入门到精通》自己敲了几个小例子,感受到了异常处理的重要性,假如我们编写的程序很大,而里边也没有任何的错误预防措施,那么一旦系统出错崩溃后我们该话费多少的时间和精力去查找这个错误啊,那么公司的成本也就大大的提升了,假如我们写入了异常处理语句那么,在系统出错的时候就会抛出异常,这样,哪里出现了错误就一目了然,只是几句代码的事就为公司省下了大量的人力、物力、财力,何乐而不为呢?

【Try......catch语句】

      首先来看一下他的代码格式,如下:

<span style="font-size:18px;">try{被监控的代码}catch(异常类名 异常变量名){异常处理}</span>
      看了这个格式挺简单懂得,那就再举个例子,帮助我们理解的更深吧!当我们进行类型转换的时候,因为有些类型是不能相互转换的,如果进行转换就会出现错误,这里我们的例子如下:
<span style="font-size:18px;">using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace @try._._.catch异常处理{    class Program    {        static void Main(string[] args)        {            try                                            //使用try...catch语句            {                object a = null;                           //声明一个object类型的变量并初始化 为null                int b = (int)a;                            //将object类型的a强制转换为int型            }            catch(Exception a)                             //捕获异常                {                    Console.WriteLine("捕获异常:"+a);     //输出异常                }            Console.ReadLine();        }    }}</span>
效果图:

【throw语句】

      通常throw语句与try...catch或try...finally语句一起使用,throw语句用来引发一个异常,然后寻找对应的catch语句,给出相应的提示,其语句格式如下:throw 异常对象光看一句代码可能感受不深刻,那就举个例子来熟悉一下,我们经常会遇到除数为0的情况,实际上0是不可以作为除数的,所以,这时候就可以用抛出异常给出提示,代码如下:

<span style="font-size:18px;">using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace throw异常{    class Program    {        static void Main(string[] args)        {            int int1;                   <span style="white-space:pre"></span>//声明一个int类型的变量int1            int int2;                   <span style="white-space:pre"></span>//声明一个int类型的变量int2            int num;                  <span style="white-space:pre"></span>//声明一个int类型的变量num            try            {                int1 = 1;                 <span style="white-space:pre"></span>//将1赋值给int1                int2 = 0;                 <span style="white-space:pre"></span>//将2赋值给int2                if (int2 == 0)             <span style="white-space:pre"></span>//如果int2的值为0时则抛出异常                {                    throw new DivideByZeroException();      <span style="white-space:pre"></span>//抛出异常                }                num = int1 / int2;                // return num;                Console.WriteLine("num的值是{0}", num);            }            catch (DivideByZeroException)       <span style="white-space:pre"></span>//捕获异常            {                Console.WriteLine("用零除整数引发异常!");            }        }    }}</span>
效果图:

【try...catch...finally语句】

      我们可以看到try...catch...finally语句比try...catch语句多了一个finally,那么它们的区别是什么呢?前者中的try...catch语句和后者一样,只不过其中的finally中的程序代码是无论程序是否有错误,程序都会执行finally中的程序代码,其代码结构如下,就不再举例了:
<span style="font-size:18px;">try{被监控的代码}catch(异常类名 异常变量名){异常处理}...finally{程序代码}</span>

【总结】

      曾经有一个机会摆在我面前,我没有抓住,现在又有一个如此珍贵的机会摆在我面前,难道我还要错过吗?NO!I must do it!!!异常处理好处多多,希望此篇博客可以给对其不知云云的我们带来帮助!


1 0