在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
块捕获其他类型的异常。