Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mit „register_shutdown_function()' schwerwiegende PHP-Fehler abfangen?

Wie kann ich mit „register_shutdown_function()' schwerwiegende PHP-Fehler abfangen?

Barbara Streisand
Freigeben: 2024-12-26 19:36:13
Original
798 Leute haben es durchsucht

How Can I Catch PHP Fatal Errors Using `register_shutdown_function()`?

Schwerwiegende PHP-Fehler abfangen

PHPs set_error_handler() versagt oft, wenn versucht wird, schwerwiegende Fehler (E_ERROR) abzufangen. Dies wird besonders problematisch, wenn mit nicht vorhandenen Funktionsaufrufen oder anderen Instanzen gearbeitet wird, die schwerwiegende Fehler auslösen.

Um diese Einschränkung zu umgehen, können Sie PHPs register_shutdown_function() für Versionen 5.2 verwenden. Der folgende Codeausschnitt demonstriert die Implementierung:

register_shutdown_function("fatal_handler");

function fatal_handler() {
    $errfile = "unknown file";
    $errstr = "shutdown";
    $errno = E_CORE_ERROR;
    $errline = 0;

    $error = error_get_last();

    if ($error !== NULL) {
        $errno = $error["type"];
        $errfile = $error["file"];
        $errline = $error["line"];
        $errstr = $error["message"];

        error_mail(format_error($errno, $errstr, $errfile, $errline));
    }
}
Nach dem Login kopieren

Um die Lösung zu vervollständigen, definieren Sie die Funktionen error_mail und format_error. Hier ist ein Beispiel:

function format_error($errno, $errstr, $errfile, $errline) {
    // Code to format and display error information goes here
}
Nach dem Login kopieren

Erwägen Sie den Einsatz von Swift Mailer für die error_mail-Funktionalität.

Weitere Informationen finden Sie in den folgenden Ressourcen:

  • $php_errormsg
  • Vordefinierte Konstanten

Das obige ist der detaillierte Inhalt vonWie kann ich mit „register_shutdown_function()' schwerwiegende PHP-Fehler abfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage