Η PHP εντοπίζει σφάλματα FATAL επιπέδου
Επίσημη αναφορά
Επίσημη ιστοσελίδα set_error_handler register_shutdown_functionΠώς να πιάσετε τέλεια όλα τα σφάλματα
Το set_error_handler μπορεί να χρησιμοποιηθεί για την καταγραφή των περισσότερων τύπων σφαλμάτων. Όταν αντιμετωπίζεται σφάλμα FATAL level, επειδή η PHP τερματίζει άμεσα τη λειτουργία, δεν είναι δυνατή η ενεργοποίηση της λειτουργίας επιστροφής που ορίστηκε από το set_error_handler. Προς το παρόν, πρέπει να χρησιμοποιήσουμε το register_shutdown_function για να ορίσουμε τη λειτουργία επανάκλησης για τον τερματισμό του προγράμματος. Θα πρέπει να σημειωθεί ότι η επαναφορά που ορίζεται από το register_shutdown_function εκτελείται μετά το τερματισμό του προγράμματος, ανεξάρτητα από το αν υπάρχει σφάλμα στη διαδικασία. Επομένως, σε αυτήν την επιστροφή κλήσης, πρέπει επίσης να προσδιορίσουμε εάν έχει προκύψει σφάλμα και εάν έχει προκύψει σφάλμα, θα το καταγράψουμε στο αρχείο καταγραφής. Για λεπτομέρειες, ανατρέξτε στον ακόλουθο κωδικό.
set_error_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function exception_handler($err_no, $err_str, $err_file, $err_line)
{
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}
function shutdown_handler()
{
$error = error_get_last();
if (empty($error)) {
return;
}
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}