Moin!
Nanu, ich hätte erwartet, dass der catch-Block nicht triggert wenn er verschiedene Exceptions empfängt.
Du kannst nach catch spezielle Typen von Exceptions angeben, um diese gezielt zu fangen – deshalb kannst du ja auch mehrere catch-Blöcke nach einem try schreiben, um verschiedenartige Exceptions, die darin auftreten könnten, gezielt einzeln zu behandeln.
Aber grundsätzlich sollte ein
catch(Exception $e)
*jede* Exception fangen, solange sie von der Basis-Exceptionklasse von PHP abgeleitet ist.
Es ist sogar noch schlimmer: Du kannst ein Objekt nicht als Exception werfen, wenn es NICHT von "\Exception" erbt.
Und was die Auswertung der Exception angeht: Die allgemeine Exception bringt ein paar Funktionen mit, die man auch nicht überschreiben darf (final deklariert), insofern kann man sich beim Fangen von "\Exception" drauf verlassen, dass deren Minimalset an Funktionen existiert und benutzt werden kann.
- Sven Rautenberg