Freigeben über


wann (C#-Referenz)

Sie verwenden das when Kontextschlüsselwort, um eine Filterbedingung in den folgenden Kontexten anzugeben:

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 falsedies 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;
        }
    }
}

Siehe auch