在C#中,except
关键字可以与where
子句结合使用,以便在处理异常时应用特定的条件。以下是一个示例:
using System;
class Program
{
static void Main()
{
try
{
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{
if (number == 3)
{
throw new InvalidOperationException("Number 3 is not allowed.");
}
Console.WriteLine(number);
}
}
catch (InvalidOperationException ex) where ex.Message.Contains("3")
{
Console.WriteLine("Caught an exception with message containing '3': " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("Caught an exception: " + ex.Message);
}
}
}
在这个示例中,我们尝试遍历一个整数数组,并在遇到数字3时引发一个InvalidOperationException
异常。然后,我们使用两个catch
块捕获异常。第一个catch
块使用where
子句来检查异常消息是否包含字符串"3"。如果条件满足,它将处理异常。第二个catch
块捕获其他类型的异常。