Fungsi set_exception_handler

Fungsi set_exception_handler membolehkan anda menentukan fungsi yang akan dipanggil untuk menangani pengecualian yang tidak ditangkap. Nama fungsi pengendali atau fungsi tanpa nama dihantar sebagai parameter. Pengendali menerima objek pengecualian sebagai parameter.

Sintaks

phpset_exception_handler(callable $exception_handler): callable

Contoh

Mari tetapkan pengendali pengecualian mudah:

php<?php
  function myExceptionHandler($exception) {
    echo 'Pengecualian ditangkap: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Something went wrong!');
?>

Hasil pelaksanaan kod:

php'Pengecualian ditangkap: Something went wrong!'

Contoh

Menggunakan fungsi tanpa nama sebagai pengendali:

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

Hasil pelaksanaan kod:

php'Ralat: Critical error'

Contoh

Memulihkan pengendali sebelumnya:

php<?php
  function firstHandler($exception) {
    echo 'Pengendali pertama: ' . $exception->getMessage();
  }
  
  function secondHandler($exception) {
    echo 'Pengendali kedua: ' . $exception->getMessage();
  }
  
  set_exception_handler('firstHandler');
  $old_handler = set_exception_handler('secondHandler');
  restore_exception_handler(); // Memulihkan firstHandler
  
  throw new Exception('Test');
?>

Hasil pelaksanaan kod:

php'Pengendali pertama: Test'