Η συνάρτηση 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'Πρώτος χειριστής: Δοκιμή'