在C#中,except
關(guān)鍵字可以與where
子句結(jié)合使用,以便在處理異常時(shí)應(yīng)用特定的條件。以下是一個(gè)示例:
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);
}
}
}
在這個(gè)示例中,我們嘗試遍歷一個(gè)整數(shù)數(shù)組,并在遇到數(shù)字3時(shí)引發(fā)一個(gè)InvalidOperationException
異常。然后,我們使用兩個(gè)catch
塊捕獲異常。第一個(gè)catch
塊使用where
子句來(lái)檢查異常消息是否包含字符串"3"。如果條件滿足,它將處理異常。第二個(gè)catch
塊捕獲其他類型的異常。