Funkce set_exception_handler

Funkce set_exception_handler umožňuje definovat funkci, která bude volána pro zpracování nechycených výjimek. Jako parametr se předává název funkce-handleru nebo anonymní funkce. Handler obdrží objekt výjimky jako parametr.

Syntaxe

phpset_exception_handler(callable $exception_handler): callable

Příklad

Nastavme jednoduchý handler výjimek:

php<?php
  function myExceptionHandler($exception) {
    echo 'Chycená výjimka: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Něco se pokazilo!');
?>

Výsledek provedení kódu:

php'Chycená výjimka: Něco se pokazilo!'

Příklad

Použití anonymní funkce jako handleru:

php<?php
  set_exception_handler(function($exception) {
    echo 'Chyba: ' . $exception->getMessage();
  });
  
  throw new Exception('Kritická chyba');
?>

Výsledek provedení kódu:

php'Chyba: Kritická chyba'

Příklad

Obnovení předchozího handleru:

php<?php
  function firstHandler($exception) {
    echo 'První handler: ' . $exception->getMessage();
  }
  
  function secondHandler($exception) {
    echo 'Druhý handler: ' . $exception->getMessage();
  }
  
  set_exception_handler('firstHandler');
  $old_handler = set_exception_handler('secondHandler');
  restore_exception_handler(); // Obnoví firstHandler
  
  throw new Exception('Test');
?>

Výsledek provedení kódu:

php'První handler: Test'