Mit Exception Filters kann man Catch
-Blöcke mit Bedingungen versehen. Ist die jeweilige Bedingung erfüllt, wird der catch
-Block (natürlich nur bei Auftreten der entsprechenden Ausnahme) ausgeführt.
Jetzt mag man meinen, dass das ja jetzt schon ginge, indem man die Exception catched und innerhalb des Ausführungsblockes Bedingungen festlegt. Der Unterschied liegt darin, dass für dieses Vorgehen die Exception gecatched werden muss. Mit Hilfe der Exception Filters wird zuerst die Bedingung geprüft und erst dann die Exception gecatched und der dazugehörige Codeblock ausgeführt.
Und so sieht ein Beispiel für Exception Filters aus:
try
{
// do that awesome stuff
}
catch (MyCustomException customEx) when(customEx.ErrorCode == 100)
{
// do what should be done
}
catch (MyCustomException customEx) when(customEx.ErrorCode == 200)
{
// do what should be done
}
catch (MyCustomException customEx)
{
Console.WriteLine("General");
}
VB.NET- und F#-Entwickler kennen das schon :)
Viel Spaß!
Viele weitere Neuerungen finden sich in der C# 6 Serie.