Функција set_exception_handler

Функцијата set_exception_handler овозможува да се дефинира функција која ќе се повикува за обработка на нефатените исклучоци. Во параметарот се пренесува името на функцијата-обработувач или анонимна функција. Обработувачот го добива објектот на исклучокот како параметар.

Синтакса

phpset_exception_handler(callable $exception_handler): callable

Пример

Да поставиме едноставен обработувач на исклучоци:

php<?php
  function myExceptionHandler($exception) {
    echo 'Фатен исклучок: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Нешто тргна наопаку!');
?>

Резултат од извршување на кодот:

php'Фатен исклучок: Нешто тргна наопаку!'

Пример

Користење на анонимна функција како обработувач:

php<?php
  set_exception_handler(function($exception) {
    echo 'Грешка: ' . $exception->getMessage();
  });
  
  throw new Exception('Критична грешка');
?>

Резултат од извршување на кодот:

php'Грешка: Критична грешка'

Пример

Враќање на претходниот обработувач:

php<?php
  function firstHandler($exception) {
    echo 'Прв обработувач: ' . $exception->getMessage();
  }
  
  function secondHandler($exception) {
    echo 'Втор обработувач: ' . $exception->getMessage();
  }
  
  set_exception_handler('firstHandler');
  $old_handler = set_exception_handler('secondHandler');
  restore_exception_handler(); // Го враќа firstHandler
  
  throw new Exception('Тест');
?>

Резултат од извршување на кодот:

php'Прв обработувач: Тест'