Well only a single exception type is going to be thrown, I guess the
answer would be most specific to less specific. So end on the actual
'Exception' class. If it's derived from another class you're eventually
going to get a hit as you go down the chain.
This is something I actually recently covered, catching multiple
Exceptions in a single 'catch' block:
http://www.gotinker.com/2010/03/09/catching-multiple-exceptions-in-a-single-block/
Which can come in handy if you want to implement the same behavior for
different types of Exceptions. Usually you should be concentrating on
some quite specific errors that could happen in your code for your
handling. If you are NOT expecting the error, then you're in unknown
territory and you really should throw and abort (and preferable log)