Η συνάρτηση set_exception_handler
Η συνάρτηση set_exception_handler σας επιτρέπει να ορίσετε μια συνάρτηση που θα καλείται για την επεξεργασία μη πιασμένων εξαιρέσεων. Στην παράμετρο μεταδίδεται το όνομα της συνάρτησης-χειριστή ή μια ανώνυμη συνάρτηση. Ο χειριστής λαμβάνει το αντικείμενο εξαίρεσης ως παράμετρο.
Σύνταξη
set_exception_handler(callable $exception_handler): callable
Παράδειγμα
Ας ορίσουμε έναν απλό χειριστή εξαιρέσεων:
<?php
function myExceptionHandler($exception) {
echo 'Πιασμένη εξαίρεση: ' . $exception->getMessage();
}
set_exception_handler('myExceptionHandler');
throw new Exception('Κάτι πήγε στραβά!');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'Πιασμένη εξαίρεση: Κάτι πήγε στραβά!'
Παράδειγμα
Χρήση ανώνυμης συνάρτησης ως χειριστή:
<?php
set_exception_handler(function($exception) {
echo 'Σφάλμα: ' . $exception->getMessage();
});
throw new Exception('Κρίσιμο σφάλμα');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'Σφάλμα: Κρίσιμο σφάλμα'
Παράδειγμα
Επαναφορά προηγούμενου χειριστή:
<?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('Δοκιμή');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'Πρώτος χειριστής: Δοκιμή'