Функция set_exception_handler

Функция set_exception_handler кармалбаган exceptions'дарды иштетүү үчүн чакырыла турган функцияны аныктоого мүмкүндүк берет. Параметр катары иштетүүчү функциянын аты же анонимдик функция берилет. Иштетүүчү функция параметр катары exception'дун объектин алат.

Синтаксис

phpset_exception_handler(callable $exception_handler): callable

Мисал

Жөнөкөй exception иштетүүчүсүн орнотолу:

php<?php
  function myExceptionHandler($exception) {
    echo 'Кармалган exception: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Something went wrong!');
?>

Кодду иштетүүнүн натыйжасы:

php'Кармалган exception: Something went wrong!'

Мисал

Иштетүүчү катары анонимдик функцияны колдонуу:

php<?php
  set_exception_handler(function($exception) {
    echo 'Ката: ' . $exception->getMessage();
  });
  
  throw new Exception('Critical error');
?>

Кодду иштетүүнүн натыйжасы:

php'Ката: Critical error'

Мисал

Мурунку иштетүүчүнү калыбына келтирүү:

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('Test');
?>

Кодду иштетүүнүн натыйжасы:

php'Биринчи иштетүүчү: Test'