Définit une fonction utilisateur de gestion d'exceptions

set_exception_handler

(PHP 5, PHP 7)

set_exception_handler Définit une fonction utilisateur de gestion d'exceptions

Description

callable set_exception_handler ( callable $exception_handler )

set_exception_handler() définit le gestionnaire d'exceptions par défaut si une exception n'est pas attrapée avec un bloc d'essai/d'attrape. L'exécution sera stoppée après l'appel à la fonction exception_handler.

Liste de paramètres

exception_handler

Nom de la fonction à appeler lorsqu'une exception qui n'a pu être attrapée survient. Ce gestionnaire doit accepter un paramètre qui sera l'objet représentant l'exception qui vient d'être lancée. C'est le gestionnaire de signature avant PHP 7 :

void handler ( Exception $ex )

Depuis PHP 7, la plupart des erreurs sont rapportées en émettant une exception de type Error, qui peut être attrapée par le gestionnaire. Les classes Error et Exception implémentent l'interface Throwable. Voici la signature du gestionnaire depuis PHP 7 :

void handler ( Throwable $ex )

NULL peut être passé à la place, pour ré-initialiser ce gestionnaire en son statut initial.

Attention

Notez que le fait de fournir explicitement le type Exception pour le paramètre ex dans votre fonction de rappel peut avoir des incidences dans la hiérarchie des exceptions modifiées en PHP 7.

Valeurs de retour

Retourne le nom du gestionnaire précédemment défini ou NULL en cas d'erreur. Si aucun gestionnaire n'a été précédemment défini, NULL est également retourné.

Historique

Version Description
7.0.0 Le type du paramètre passé dans exception_handler a changé, passant de Exception à Throwable
5.5.0 Précédemment, si NULL était passé, alors la fonction retournait TRUE. Désormais, elle retourne le gestionnaire précédant, et ce, depuis PHP 5.5.0.

Exemples

Exemple #1 Exemple avec set_exception_handler()

<?php
function exception_handler($exception) {
  echo 
"Exception non attrapée : " $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new 
Exception('Uncaught Exception');
echo 
"Non exécuté\n";
?>

Voir aussi