(PHP 5, PHP 7)
set_exception_handler — Installiert einen benutzerdefinierten Exceptionhandler
Setzt den Standardexceptionhandler für Exceptions die nicht
von einem try/catch Block aufgefangen wurden. Nach dem
Aufruf von exception_handler
wird
die Ausführung angehalten.
exception_handler
Name der Funktion die aufgerufen werden soll wenn eine nicht aufgefangene Exception auftritt. Die Funktion muss einen Parameter akzeptieren, dieser enthält beim Aufruf das nicht aufgefangene Exception Objekt. Das ist die Signatur des Handlers vor PHP 7:
Seit PHP 7 werden die meisten Fehler durch Werfen von Error-Exceptions gemeldet, die ebenfalls vom Handler gefangen werden. Sowohl Error als auch Exception implementieren das Throwable-Interface. Dies ist die Handler-Signatur seit PHP 7:
Statt dessen kann NULL
übergeben werden, um den Handler auf seinen
Standardwert zurück zu setzen.
Es ist zu beachten, dass die Angabe des expliziten
Exception Typ-Hints für den
ex
Parameter in Ihrem Callback Probleme mit der
geänderten Exception-Hierarchie von PHP 7 verursachen kann.
Gibt den Namen des zuvor definierten Exceptionhandlers zurück
oder NULL
bei Fehlern oder wenn kein vorheriger Exceptionhandler
installiert war.
Version | Beschreibung |
---|---|
7.0.0 |
Der Typ des Parameters, der als exception_handler
übergeben wird, wurde von Exception in
Throwable geändert.
|
5.5.0 |
Zuvor gab diese Funktion TRUE zurück, wenn NULL übergeben wurde.
Seit PHP 5.5.0 wird der vorherige Handler zurück gegeben.
|
Beispiel #1 set_exception_handler() Beispiel
<?php
function exception_handler($exception) {
echo "Nicht aufgefangene Exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('Nicht aufgefangene Exception');
echo "Nicht ausgeführt.\n";
?>