Milliongame
Mitglied
Hallo,
ich habe über set_exception_handler() einen ExceptionHandler definiert, jedoch endet die Ausführung des Programms immer, nach dem dieser aufgerufen wurde. Hier der ExceptionHandler:
Struktur / Vererbungsbaum der Exceptions:
BasicException -> AbstractDisplayAbleException -> AbstractFatalException
D.h. sobald eine AbstractFatalException oder deren Kinder geworfen wird, soll das Script beendet werden, nach dem diese behandelt wurde. Wird eine AbstractDisplayAbleException geworfen, soll das Script fortgesetzt werden, nach dem der ExceptionHandler ausgeführt wurde (ausgenommen AbstractFatalException und deren Kinderklassen).
Jedoch wird bei jeder Exception die den Handler passiert das Script beendet, Verdeutlichung:
Muss der ExceptionHandler einen bestimmten Wert zurück geben oder muss ich etwas anderes beachten werden, damit das Script weiter fortgeführt wird?
Noch am Rande die Frage, soll ich lieber den InstanceOf-Operator benutzen oder die PHP-Funktion is_a() ?
ich habe über set_exception_handler() einen ExceptionHandler definiert, jedoch endet die Ausführung des Programms immer, nach dem dieser aufgerufen wurde. Hier der ExceptionHandler:
PHP:
function exceptionHandler($exception) {
if ($exception instanceOf BasicException) {
$exception->handleException();
}
if ($exception instanceOf AbstractFatalException) {
exit;
}
return true;
}
Struktur / Vererbungsbaum der Exceptions:
BasicException -> AbstractDisplayAbleException -> AbstractFatalException
D.h. sobald eine AbstractFatalException oder deren Kinder geworfen wird, soll das Script beendet werden, nach dem diese behandelt wurde. Wird eine AbstractDisplayAbleException geworfen, soll das Script fortgesetzt werden, nach dem der ExceptionHandler ausgeführt wurde (ausgenommen AbstractFatalException und deren Kinderklassen).
Jedoch wird bei jeder Exception die den Handler passiert das Script beendet, Verdeutlichung:
PHP:
set_exception_handler('exceptionHandler');
throw new AbstractDisplayAbleException();
echo "weiter ausgeführt"; // wird nicht mehr angezeigt / behandelt
Muss der ExceptionHandler einen bestimmten Wert zurück geben oder muss ich etwas anderes beachten werden, damit das Script weiter fortgeführt wird?
Noch am Rande die Frage, soll ich lieber den InstanceOf-Operator benutzen oder die PHP-Funktion is_a() ?