Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie verwenden das when
Kontextschlüsselwort, um eine Filterbedingung in den folgenden Kontexten anzugeben:
- In einer Catch-Klausel einer
try-catch
odertry-catch-finally
Anweisung. - Als Case Guard in der
switch
Anweisung. - Als Fallschutz im
switch
Ausdruck.
when
in einer Catch-Klausel
Das when
Schlüsselwort kann in einer Catch-Klausel verwendet werden, um eine Bedingung anzugeben, die für den Handler für eine bestimmte auszuführende Ausnahme wahr sein muss. Die Syntax lautet:
catch (ExceptionType [e]) when (expr)
dabei handelt es sich um einen Ausdruck, der zu einem booleschen Wert ausgewertet wird. Wenn er zurückgibt true
, wird der Ausnahmehandler ausgeführt; wenn false
dies nicht der Fall ist.
Im folgenden Beispiel wird das when
Schlüsselwort verwendet, um Handler für einen HttpRequestException abhängigen Text der Ausnahmemeldung bedingt auszuführen.
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;
}
}
}