Функсияи 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'Коркарди аввал: Санҷиш'