Heim > Artikel > Backend-Entwicklung > PHP fängt eine schwerwiegende Fehlerinstanz ab
Wie kann man schwerwiegende Fehler in PHP abfangen? In diesem Artikel werden hauptsächlich Beispiele für die Verwendung der Funktion register_shutdown_function zum Abfangen schwerwiegender Fehler in PHP vorgestellt. Ich hoffe, es hilft allen.
Wenn wir an Projekten arbeiten, passieren aufgrund von Unachtsamkeit gelegentlich fatale Fehler. Wenn display_errors auf „off“ gesetzt ist, wird dem Benutzer eine leere Seite angezeigt. Wenn es aktiviert ist, wird die schwerwiegende Fehlermeldung angezeigt (normale Leute werden dies natürlich nicht tun).
Gibt es also eine Möglichkeit, den schwerwiegenden Fehler im Voraus abzufangen und ihn dem Benutzer in unserem eigenen, benutzerfreundlichen Formular zu melden? In PHP gibt es eine Funktion namens register_shutdown_function, mit der wir eine andere Funktion festlegen können, die aufgerufen werden kann, wenn die Ausführung beendet ist. Das heißt, wenn die Ausführung unseres Skripts abgeschlossen ist oder unerwartet abbricht und die PHP-Ausführung kurz vor dem Beenden steht. Diese Funktion wird aufgerufen.
Sehen Sie sich unten ein Beispiel an:
<?php $flag = false; function deal_error(){ global $flag; if (!$flag){ die("粗问题啦,请稍后再试"); } return false; } register_shutdown_function("deal_error"); //将因为致命错误而失败 //$obj = new NotExistClass(); //引入未定义的类 require('./test.php'); $flag = true;
Wir setzen das Flag am Programmeintrag auf „false“ und schließlich auf „true“, um anzuzeigen, dass das Programm normal ausgeführt wird. Wenn das Flag am Ende nicht wahr ist, bedeutet dies, dass es irgendwo in der Mitte gestorben ist. Zu diesem Zeitpunkt wird register_shutdown_function aufgerufen, um unser benutzerdefiniertes Fehlerergebnis auszugeben.
Wenn die obige Klasse nicht definiert ist, nicht vorhandene Dateien eingeführt werden (require oder require_once müssen verwendet werden) usw., führt dies zu schwerwiegenden Fehlern. Wenn in Ihrem Programm ein Satzzeichen fehlt oder ein besonderes Sonderzeichen oder ähnliches vorhanden ist, können Sie natürlich nichts dagegen tun.
Verwandte Empfehlungen:
Detaillierte Erläuterung der PHP-Fehlertypen und Abschirmungsmethoden
Detaillierte Erläuterung der Beispiele für PHP-Fehlerbehandlungsmechanismen
PHP-Fehlermeldungskonfiguration
Das obige ist der detaillierte Inhalt vonPHP fängt eine schwerwiegende Fehlerinstanz ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!