Funktionen set_exception_handler

Funktionen set_exception_handler tillader dig at definere en funktion, der vil blive kaldt for at håndtere ikke-fangede undtagelser. Parameteren modtager enten navnet på en håndteringsfunktion eller en anonym funktion. Håndtereren modtager undtagelsesobjektet som en parameter.

Syntaks

phpset_exception_handler(callable $exception_handler): callable

Eksempel

Lad os sætte en simpel undtagelseshåndterer:

php<?php
  function myExceptionHandler($exception) {
    echo 'Fangede undtagelse: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Noget gik galt!');
?>

Resultat af kodeudførelse:

php'Fangede undtagelse: Noget gik galt!'

Eksempel

Brug af anonym funktion som håndterer:

php<?php
  set_exception_handler(function($exception) {
    echo 'Fejl: ' . $exception->getMessage();
  });
  
  throw new Exception('Kritisk fejl');
?>

Resultat af kodeudførelse:

php'Fejl: Kritisk fejl'

Eksempel

Gendannelse af forrige håndterer:

php<?php
  function firstHandler($exception) {
    echo 'Første håndterer: ' . $exception->getMessage();
  }
  
  function secondHandler($exception) {
    echo 'Anden håndterer: ' . $exception->getMessage();
  }
  
  set_exception_handler('firstHandler');
  $old_handler = set_exception_handler('secondHandler');
  restore_exception_handler(); // Gendanner firstHandler
  
  throw new Exception('Test');
?>

Resultat af kodeudførelse:

php'Første håndterer: Test'