set_exception_handler

(PHP 5, PHP 7)

set_exception_handler Installiert einen benutzerdefinierten Exceptionhandler

Beschreibung

set_exception_handler ( callable $exception_handler ) : callable

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.

Parameter-Liste

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:

handler ( Exception $ex ) : void

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:

handler ( Throwable $ex ) : void

Statt dessen kann NULL übergeben werden, um den Handler auf seinen Standardwert zurück zu setzen.

Achtung

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.

Rückgabewerte

Gibt den Namen des zuvor definierten Exceptionhandlers zurück oder NULL bei Fehlern oder wenn kein vorheriger Exceptionhandler installiert war.

Changelog

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.

Beispiele

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";
?>

Siehe auch