Funkcija set_exception_handler
Funkcija set_exception_handler leidžia apibrėžti funkciją, kuri bus iškviečiama nepagautoms išimtims apdoroti. Parametru perduodamas apdorojimo funkcijos pavadinimas arba anoniminė funkcija. Apdorotojas gauna išimties objektą kaip parametrą.
Sintaksė
set_exception_handler(callable $exception_handler): callable
Pavyzdys
Nustatykime paprastą išimčių apdorotoją:
<?php
function myExceptionHandler($exception) {
echo 'Pagauta išimtis: ' . $exception->getMessage();
}
set_exception_handler('myExceptionHandler');
throw new Exception('Kažkas nutiko ne taip!');
?>
Kodo vykdymo rezultatas:
'Pagauta išimtis: Kažkas nutiko ne taip!'
Pavyzdys
Anoniminės funkcijos naudojimas kaip apdorotojo:
<?php
set_exception_handler(function($exception) {
echo 'Klaida: ' . $exception->getMessage();
});
throw new Exception('Kritinė klaida');
?>
Kodo vykdymo rezultatas:
'Klaida: Kritinė klaida'
Pavyzdys
Ankstesnio apdorotojo atkūrimas:
<?php
function firstHandler($exception) {
echo 'Pirmasis apdorotojas: ' . $exception->getMessage();
}
function secondHandler($exception) {
echo 'Antrasis apdorotojas: ' . $exception->getMessage();
}
set_exception_handler('firstHandler');
$old_handler = set_exception_handler('secondHandler');
restore_exception_handler(); // Atkuria firstHandler
throw new Exception('Testas');
?>
Kodo vykdymo rezultatas:
'Pirmasis apdorotojas: Testas'