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 kontextabhängige Schlüsselwort when
, um in den folgenden Kontexten eine Filterbedingung anzugeben:
- In einer Catch-Klausel einer
try-catch
odertry-catch-finally
Anweisung. - Als Case Guard in der
switch
-Anweisung. - Als Case Guard im
switch
-Ausdruck.
when
in einer Catch-Klausel
Das Keyword when
kann in einer Catch-Klausel verwendet werden, um eine Bedingung anzugeben, deren Wert für den Handler „TRUE“ lauten muss, damit eine bestimmte Ausnahme ausgeführt wird. Die Syntax lautet:
catch (ExceptionType [e]) when (expr)
where expr ist ein Ausdruck, der einen booleschen Wert ergibt. Wenn true
zurückgegeben wird, wird der Ausnahmehandler ausgeführt; wenn false
zurückgegeben wird, nicht.
Im folgenden Beispiel wird das Schlüsselwort when
verwendet, um Handler abhängig vom Text der Ausnahmemeldung für HttpRequestException 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;
}
}
}