使用try,catch,finally处理错误异常

先讲一下处理异常的语法结构:
在这里插入图片描述

举一个错误异常的例子:

 class Program
    {
     
        static void Main(string[] args)
        {
            try
            {
                int[] myArray = {1, 2, 3, 4};
                int myEle = myArray[4];
            }

从上面代码可以看出,myArray[4]数组下标越界了
在这里插入图片描述
所以现在使用try,catch,finally来处理这个异常:

 class Program
    {
        
        static void Main(string[] args)
        {

            try
            {
                int[] myArray = { 1, 2, 3, 4 };
                int myEle = myArray[4];
            }

            catch (IndexOutOfRangeException e)//当捕捉的异常与代码发生的异常相同时,程序可继续执行catch里的代码,括号内放的是异常的对象
            {
                Console.WriteLine("异常,数组下标越界");
            }
            finally
            {
                Console.WriteLine("这里是finally");
            }
     }
   }

运行的结果为:
在这里插入图片描述
从结果可以看出,使用了异常处理的情况下,程序依然能执行,输出了catch块和finally块的语句

我们再看下面的代码:

class Program
    {
        static void Main(string[] args)
        {

            try
            {
                int[] myArray = { 1, 2, 3, 4 };
                int myEle = myArray[4];
            }

            catch (NullReferenceException e)//当捕捉的异常与代码发生的异常不同时,程序会终止
            {
                Console.WriteLine("异常");
                Console.WriteLine("访问数组的时候越界了");
            }
              finally
            {
                Console.WriteLine("这里是finally");
            }

            Console.ReadKey();
        }
    }

运行的结果为:
在这里插入图片描述
程序在异常处终止了,原因是在catch块捕捉的异常与代码的异常不同,所以程序终止无法运行。

再看多一个例子:

class Program
    {
        static void Main(string[] args)
        {

            try
            {
                int[] myArray = { 1, 2, 3, 4 };
                int myEle = myArray[4];
            }
             catch//当没有指定捕捉异常的内容时,能够捕捉到所有异常,程序执行
            {
                Console.WriteLine("异常,数组下标越界");
            }

            finally
            {
                Console.WriteLine("这里是finally");
            }

            Console.ReadKey();
        }
    }

运行结果为:
在这里插入图片描述
与第一个例子一样输出了catch块和finally块的语句,唯一不同的是在代码里catch块没有指定捕捉异常的内容

根据以上例子总结:
1.使用try,catch,finally语法处理异常可以使代码在异常的情况下继续执行。
2.当catch块指定捕捉的异常与代码异常不同时,程序会被终止。
3.当catch块没有指定捕捉异常内容时,任何异常都会被捕捉。
4.当代码没有异常时,catch块的内容不会被执行。
4.只要程序能够执行,finally块的内容都会被执行。

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值