Функция 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'Биринчи ишлов бериш: Тест'