C# Language quand


Exemple

Le when est un mot clé ajouté dans C # 6 et il est utilisé pour le filtrage des exceptions.

Avant l'introduction du mot when clé when , vous auriez pu avoir une clause catch pour chaque type d'exception; avec l'ajout du mot-clé, un contrôle plus fin est désormais possible.

Une expression when est attachée à une branche catch et seulement si la condition when est true , la clause catch sera exécutée. Il est possible d'avoir plusieurs clauses catch avec les mêmes types de classes d'exception, et différentes when conditions when remplies.

private void CatchException(Action action)
{
    try
    {
        action.Invoke();
    }
    
    // exception filter
    catch (Exception ex) when (ex.Message.Contains("when"))
    {
        Console.WriteLine("Caught an exception with when");
    }

    catch (Exception ex)
    {
        Console.WriteLine("Caught an exception without when");
    }
}

private void Method1() { throw new Exception("message for exception with when"); }
private void Method2() { throw new Exception("message for general exception"); }


CatchException(Method1);
CatchException(Method2);