when (C# 參考)
您可以使用 when
內容關鍵字,在下列內容中指定篩選條件:
- 在
try-catch
或try-catch-finally
陳述式的 catch 子句中。 - 作為
switch
陳述式中的案例成立條件。 - 作為
switch
運算式中的案例成立條件。
catch 子句中的 when
when
關鍵字可以用於 catch 陳述式,以指定必須符合才能讓處理常式執行特定例外狀況的條件。 其語法如下:
catch (ExceptionType [e]) when (expr)
其中,expr 是可評估為布林值的運算式。 如果它傳回 true
,則會執行例外狀況處理常式;如果 false
則否。
下列範例使用 when
關鍵字,根據例外狀況訊息的文字,有條件地執行 HttpRequestException 的處理常式。
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static void Main()
{
Console.WriteLine(MakeRequest().Result);
}
public static async Task<string> MakeRequest()
{
var client = new HttpClient();
var streamTask = client.GetStringAsync("https://localHost:10000");
try
{
var responseText = await streamTask;
return responseText;
}
catch (HttpRequestException e) when (e.Message.Contains("301"))
{
return "Site Moved";
}
catch (HttpRequestException e) when (e.Message.Contains("404"))
{
return "Page Not Found";
}
catch (HttpRequestException e)
{
return e.Message;
}
}
}