Funkcia set_exception_handler

Funkcia set_exception_handler umožňuje definovať funkciu, ktorá bude volaná pre spracovanie neodchytých výnimiek. Do parametra sa odovzdáva názov funkcie-handlera alebo anonymná funkcia. Handler dostáva objekt výnimky ako parameter.

Syntax

phpset_exception_handler(callable $exception_handler): callable

Príklad

Nastavme jednoduchý handler výnimiek:

php<?php
  function myExceptionHandler($exception) {
    echo 'Odchytnutá výnimka: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Niečo sa pokazilo!');
?>

Výsledok vykonania kódu:

php'Odchytnutá výnimka: Niečo sa pokazilo!'

Príklad

Použitie anonymnej funkcie ako handlera:

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

Výsledok vykonania kódu:

php'Chyba: Kritická chyba'

Príklad

Obnovenie predchádzajúceho handlera:

php<?php
  function firstHandler($exception) {
    echo 'Prvý 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ýsledok vykonania kódu:

php'Prvý handler: Test'