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'Бірінші өңдегіш: Тест'