#1,219 – C# 6.0 – Filtering Exceptions

November 5, 2014

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