#1,219 – C# 6.0 – Filtering Exceptions
November 5, 2014 13 Comments
C# 6.0 will include support for exception filters, that is–only catching a particular type of exception if an associated expression evaluates to true.
You can filter exceptions by including a when statement after the catch expression. If the result of evaluating the expression supplied is true, the exception is caught. If not, the behavior is as if you didn’t supply a catch block.
In the example below, we don’t catch divide by zero exceptions on Saturdays.
int denom; try { denom = 0; int x = 5 / denom; } // Catch /0 on all days but Saturday catch (DivideByZeroException xx) when (DateTime.Now.DayOfWeek != DayOfWeek.Saturday) { Console.WriteLine(xx); }