Nemerle внезапно позволяет писать такой код:
using System;
try
{
throw ArgumentException("");
}
catch
{
| _ => Console.WriteLine("A");
| ArgumentException => Console.WriteLine("B");
}
Выводится "A"
А если поменять местами то конечно будет печать "B".
В C# такое делать конечно нельзя: error CS1017: Catch clauses cannot follow the general catch clause of a try statement .
В принципе поведение логичное если смотреть на соответствие с конструкцией "match", но может немного удивить.