set_exception_handler Fonksiyonu

set_exception_handler fonksiyonu, yakalanmamış istisnaları işlemek için çağrılacak bir fonksiyon tanımlamaya izin verir. Parametre olarak bir işleyici fonksiyonun adı veya anonim bir fonksiyon iletilir. İşleyici, bir parametre olarak istisna nesnesini alır.

Sözdizimi

phpset_exception_handler(callable $exception_handler): callable

Örnek

Basit bir istisna işleyici tanımlayalım:

php<?php
  function myExceptionHandler($exception) {
    echo 'Yakalanan istisna: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Bir şeyler yanlış gitti!');
?>

Kodun çalıştırılmasının sonucu:

php'Yakalanan istisna: Bir şeyler yanlış gitti!'

Örnek

İşleyici olarak anonim fonksiyon kullanımı:

php<?php
  set_exception_handler(function($exception) {
    echo 'Hata: ' . $exception->getMessage();
  });
  
  throw new Exception('Kritik hata');
?>

Kodun çalıştırılmasının sonucu:

php'Hata: Kritik hata'

Örnek

Önceki işleyicinin geri yüklenmesi:

php<?php
  function firstHandler($exception) {
    echo 'Birinci işleyici: ' . $exception->getMessage();
  }
  
  function secondHandler($exception) {
    echo 'İkinci işleyici: ' . $exception->getMessage();
  }
  
  set_exception_handler('firstHandler');
  $old_handler = set_exception_handler('secondHandler');
  restore_exception_handler(); // firstHandler'ı geri yükler
  
  throw new Exception('Test');
?>

Kodun çalıştırılmasının sonucu:

php'Birinci işleyici: Test'