set_exception_handler funksiyasi

set_exception_handler funksiyasi ushlanmagan istisnolar uchun chaqiriladigan funksiyani belgilash imkonini beradi. Parametr sifatida qayta ishlovchi funksiya nomi yoki anonim funksiya uzatiladi. Qayta ishlovchi parametr sifatida istisno ob'ektini oladi.

Sintaksis

phpset_exception_handler(callable $exception_handler): callable

Misol

Oddiy istisnolar qayta ishlovchisini o'rnatamiz:

php<?php
  function myExceptionHandler($exception) {
    echo 'Ushlangan istisno: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Nimadir noto‘g‘ri ketdi!');
?>

Kodni bajarish natijasi:

php'Ushlangan istisno: Nimadir noto‘g‘ri ketdi!'

Misol

Qayta ishlovchi sifatida anonim funksiyadan foydalanish:

php<?php
  set_exception_handler(function($exception) {
    echo 'Xato: ' . $exception->getMessage();
  });
  
  throw new Exception('Jiddiy xato');
?>

Kodni bajarish natijasi:

php'Xato: Jiddiy xato'

Misol

Oldingi qayta ishlovchini tiklash:

php<?php
  function firstHandler($exception) {
    echo 'Birinchi qayta ishlovchi: ' . $exception->getMessage();
  }
  
  function secondHandler($exception) {
    echo 'Ikkinchi qayta ishlovchi: ' . $exception->getMessage();
  }
  
  set_exception_handler('firstHandler');
  $old_handler = set_exception_handler('secondHandler');
  restore_exception_handler(); // firstHandler ni tiklaydi
  
  throw new Exception('Test');
?>

Kodni bajarish natijasi:

php'Birinchi qayta ishlovchi: Test'