温馨提示×

c# switch怎样实现异常处理

c#
小樊
81
2024-12-01 11:23:09
栏目: 编程语言

在C#中,使用switch语句时,可以通过捕获特定的异常类型来实现异常处理。以下是一个示例,展示了如何在switch语句中处理异常:

using System;

class Program
{
    static void Main()
    {
        try
        {
            int number = 2;
            string result = GetResult(number);
            Console.WriteLine(result);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }

    static string GetResult(int number)
    {
        string result;

        try
        {
            switch (number)
            {
                case 1:
                    result = "Number is 1";
                    break;
                case 2:
                    throw new InvalidOperationException("Number is 2");
                case 3:
                    result = "Number is 3";
                    break;
                default:
                    throw new ArgumentOutOfRangeException(nameof(number), "Invalid number");
            }
        }
        catch (InvalidOperationException ex)
        {
            Console.WriteLine($"Specific exception: {ex.Message}");
            result = "An specific exception occurred";
        }
        catch (ArgumentOutOfRangeException ex)
        {
            Console.WriteLine($"Specific exception: {ex.Message}");
            result = "An specific exception occurred";
        }
        catch (Exception ex)
        {
            Console.WriteLine($"General exception: {ex.Message}");
            result = "An general exception occurred";
        }

        return result;
    }
}

在这个示例中,我们有一个名为GetResult的方法,它接受一个整数参数。在switch语句中,我们根据输入的整数值执行不同的操作。如果遇到特定的异常(例如InvalidOperationExceptionArgumentOutOfRangeException),我们会捕获它们并输出相应的错误消息。对于其他类型的异常,我们会捕获通用的Exception类并输出一条通用错误消息。

0