mikor (C#-referencia)
A when
környezeti kulcsszóval szűrőfeltételt adhat meg a következő környezetekben:
- Egy vagy
try-catch-finally
több utasítás fogási záradékábantry-catch
. - Esetőrként a
switch
vallomásban. - Esetőrként a
switch
kifejezésben.
when
fogási záradékban
A when
kulcsszó egy fogási záradékban használható egy olyan feltétel megadásához, amelynek igaznak kell lennie a kezelő számára egy adott kivétel végrehajtásához. Szintaxisa:
catch (ExceptionType [e]) when (expr)
ahol az expr egy logikai értékre kiértékelt kifejezés. Ha visszaadja true
, a kivételkezelő végrehajtja; ha false
, akkor nem.
Az alábbi példa a kulcsszót használja a when
kezelők feltételes végrehajtására HttpRequestException a kivételüzenet szövegétől függően.
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;
}
}
}
Lásd még
Dolgozzon együtt velünk a GitHubon
A tartalom forrása a GitHubon található, ahol létrehozhat és áttekinthet problémákat és lekéréses kérelmeket is. További információért tekintse meg a közreműködői útmutatónkat.