在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语句中,我们根据输入的整数值执行不同的操作。如果遇到特定的异常(例如InvalidOperationException
或ArgumentOutOfRangeException
),我们会捕获它们并输出相应的错误消息。对于其他类型的异常,我们会捕获通用的Exception
类并输出一条通用错误消息。