wanneer (C#-verwijzing)

U gebruikt het when contextuele trefwoord om een filtervoorwaarde op te geven in de volgende contexten:

when in een catch-component

Het when trefwoord kan worden gebruikt in een catch-component om een voorwaarde op te geven die waar moet zijn voor de handler voor een specifieke uitzondering die moet worden uitgevoerd. De syntaxis is:

catch (ExceptionType [e]) when (expr)

waarbij expr een expressie is die resulteert in een Booleaanse waarde. Als deze wordt geretourneerd true, wordt de uitzonderingshandler uitgevoerd. Als falsedit niet het geval is.

In het volgende voorbeeld wordt het when trefwoord gebruikt om handlers voorwaardelijk uit te voeren voor een HttpRequestException , afhankelijk van de tekst van het uitzonderingsbericht.

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

Zie ook