catch 節は具体的なものから始まり、適用範囲が広がる順序で記述する必要があります。 そのように記述しない場合、最も具体的なハンドラーでも例外をキャッチできない場合があります。
catch
詳しくは、「Exceptions (php.net)」を参照してください。