C#中具有多个catch块的异常处理

在C#程序中,我们可以使用多个catch块来处理多个异常,因为有时还需要处理一个编码节的多个异常,并且显然一个编码节可以生成多个异常。

看下面的示例,

在这里,我们使用了两个catch块,一个用于捕获“ DivideByZeroException”,当任何数字除以零时将发生该异常,第二个用于捕获任何其他异常,如我们在上一教程(C#异常处理)中所讨论的那样。“Exception”类是超类,可用于处理所有类型的异常。

using System;

class Program
{
    static void Main()
    {
        int number1 = 20;
        int number2 = 0;
        int result  = 0;

        try
        {
            result = number1 / number2;
            Console.WriteLine("Result : " + result);
        }
        catch (DivideByZeroException e)
        {
            Console.WriteLine(e.Message);
        }
        catch (Exception)
        {
            Console.WriteLine("Exception Occured");
        }
        
    }
}

输出结果

C#中的异常处理

在不使用异常类的情况下捕获异常

如果我们不知道应该用于捕获特定异常的特定类,那么我们也可以仅使用“ catch”关键字来处理/捕获异常。无需使用类名,请考虑下面的程序,其中我们没有指定任何异常类。

using System;

class Program
{
    static void Main()
    {
       
        int result  = 0;
        int num = 0;

        try
        {
            result = 500 / num;
            Console.WriteLine("此行将不执行");
        }
        catch 
        {
            Console.WriteLine("try块中发生异常");
        }
    }
}

输出结果

try块中发生异常