when (referenční dokumentace jazyka C#)
Kontextové klíčové slovo použijete when
k určení podmínky filtru v následujících kontextech:
- V klauzuli catch příkazu
try-catch
nebotry-catch-finally
příkazu. - Jako případová stráž v
switch
příkazu. - Jako případová ochrana ve výrazu
switch
.
when
v klauzuli catch
Klíčové when
slovo lze použít v klauzuli catch k určení podmínky, která musí být pravdivá pro obslužnou rutinu pro konkrétní výjimku ke spuštění. Jeho syntaxe je:
catch (ExceptionType [e]) when (expr)
where výraz je výraz, který se vyhodnotí jako logická hodnota. Pokud se vrátí true
, obslužná rutina výjimky se spustí, pokud false
ne.
Následující příklad používá when
klíčové slovo k podmíněnému spouštění obslužných rutin pro v HttpRequestException závislosti na textu zprávy výjimky.
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;
}
}
}
Viz také
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.