Functie set_exception_handler

De functie set_exception_handler maakt het mogelijk om een functie te definiëren die wordt aangeroepen voor het afhandelen van niet-opgevangen uitzonderingen. De parameter ontvangt de naam van de handlerfunctie of een anonieme functie. De handler ontvangt het uitzonderingsobject als parameter.

Syntaxis

phpset_exception_handler(callable $exception_handler): callable

Voorbeeld

Laten we een eenvoudige uitzonderingshandler instellen:

php<?php
  function myExceptionHandler($exception) {
    echo 'Opgevangen uitzondering: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Er is iets fout gegaan!');
?>

Resultaat van de code-uitvoering:

php'Opgevangen uitzondering: Er is iets fout gegaan!'

Voorbeeld

Gebruik van een anonieme functie als handler:

php<?php
  set_exception_handler(function($exception) {
    echo 'Fout: ' . $exception->getMessage();
  });
  
  throw new Exception('Kritieke fout');
?>

Resultaat van de code-uitvoering:

php'Fout: Kritieke fout'

Voorbeeld

Herstellen van de vorige handler:

php<?php
  function firstHandler($exception) {
    echo 'Eerste handler: ' . $exception->getMessage();
  }
  
  function secondHandler($exception) {
    echo 'Tweede handler: ' . $exception->getMessage();
  }
  
  set_exception_handler('firstHandler');
  $old_handler = set_exception_handler('secondHandler');
  restore_exception_handler(); // Herstelt firstHandler
  
  throw new Exception('Test');
?>

Resultaat van de code-uitvoering:

php'Eerste handler: Test'