I don't understand why. The other code does this the same way, with the intention being that you catch different exceptions if you want to take different actions based on the exception type. Here, something has happened that is unrecoverable (since the tools didn't catch it and deal with it), so the action is always the same - tell the user and abort.