在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
塊捕獲其他類型的異常。