I was doing some unit testing on code that could throw a number of exceptions depending on the inputs. So I tried something like the below code: (simplified for the example)
It would seem that the most specific type of the exception, when given the choice between T and Exception, is exception, and so that handler is invoked.
I just tried this (you can't do it in C# or VB, but I edited the IL), and changed the second catch clause to catch Object Ex rather than Exception Ex, and in that case, the first handler got hit.
Edit
As others have pointed out, it's more to do with running it in the debugger than the specific type