Wenn Sie ein PHP-Veteran sind, wissen Sie natürlich, was passiert, wenn ein PHP-Skript fehlschlägt. Zu diesem Zeitpunkt gibt der PHP-Parser eine Fehlermeldung auf dem Bildschirm aus, z. B. Schwerwiegender Fehler: Aufruf einer undefinierten Funktion in Zeile 19 –, sodass das Programm hier beendet wird. Diese Informationen schrecken den Kunden ab und er ruft möglicherweise sofort zu einem Beratungsgespräch an.
Zum Glück gibt es eine Lösung. PHP verfügt über integrierte Tools, mit denen Entwickler Skriptfehler abfangen und an benutzerdefinierte Fehlerhandler weiterleiten können. An diesem Punkt kann der Prozessor so programmiert werden, dass er spezifischere Informationen über den Fehler anzeigt. (Empfohlenes Lernen: PHP-Programmierung vom Anfänger bis zum Experten)
Fehler können auch in Dateien oder Datenbanken geschrieben werden, um Abhilfemaßnahmen zu ergreifen. Manchmal ist es auch möglich, den Prozessor so zu programmieren, dass er Fehlermeldungen ignoriert.
In diesem Artikel erkläre ich, wie man die Fehlerbehandlungs-API von PHP verwendet, um einen benutzerdefinierten Fehlerhandler zu erstellen, und erkläre, wie man Skriptfehlerinformationen auf einfache und benutzerfreundliche Weise anzeigt und verwaltet.
Fehlertypen und Meldestufen
Beginnen wir mit den Grundlagen. PHP hat drei grundlegendste Fehlertypen, von Low-Level bis High-Level: Achtung, Warnung und Fehler (oder schwerwiegender Fehler). Normalerweise beenden Vorsichtsmaßnahmen und Warnungen das Programm nicht. Schwerwiegende Fehler sind jedoch gefährliche Fehler (z. B. der Aufruf einer undefinierten Funktion oder der Verweis auf ein nicht vorhandenes Objekt), die zu einer Programmunterbrechung führen. Diese Fehler können beim Start, beim Parsen, beim Kompilieren oder zur Laufzeit auftreten.
Schlüsselwörter wie E_NOTICE, E_ERROR usw. werden verwendet, um verschiedene Arten und Ebenen von Fehlern anzuzeigen. Eine detaillierte Liste davon finden Sie im PHP-Handbuch.
Die Fehleranzeige in der Skriptphase wird durch die Funktion error_reporting() gesteuert. Diese Funktion legt unterschiedliche Parameter für unterschiedliche Fehlerstufen fest. Tabelle A zeigt ein Skript, das diese Funktion verwendet, um Warnungen und schwerwiegende Fehler zu melden.
Tabelle A
<?php // display warnings and errors error_reporting(E_WARNING | E_ERROR); // this will generate a notice, which will never be displayed echo $undefinedVar; // this will generate a fatal error, which will be displayed callUndefFunc(); ?>
Beim Vergleich des Codes in Tabelle B mit dem obigen wird festgestellt, dass Fehlerinformationen und sogar schwerwiegende Informationen in Listing B ausgeblendet sind, sodass die Fehlerinformationen nicht angezeigt werden angezeigt werden.
Tabelle B
<?php // turn off error display // no errors will be displayed error_reporting(0); // this will generate a notice echo $undefinedVar; // this will generate a fatal error callUndefFunc(); ?>
Der Code in Tabelle C zeigt alle Fehlermeldungen und sogar einfache Vorsichtsmaßnahmen an:
Tabelle C
<?php // all errors will be displayed error_reporting(E_ALL); // this will generate a notice echo $undefinedVar; // this will generate a fatal error callUndefFunc(); ?>
Wie oben Wie im gezeigt In drei Beispielen ist die Funktion error_reporting() sehr wichtig für die Steuerung des auf dem Bildschirm angezeigten Inhalts, wenn ein Fehler auftritt. Das Schlüsselwort hier wird angezeigt, was bedeutet, dass der Fehler nicht angezeigt wird und nicht, dass der Fehler nicht auftritt. Wenn daher ein schwerwiegender Fehler auftritt (z. B. ein falscher Funktionsaufruf), wird das Programm beendet. Dem Benutzer wird zu diesem Zeitpunkt jedoch keine Meldung angezeigt.
Das obige ist der detaillierte Inhalt vonBenutzerdefinierter PHP-Fehlerbehandler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!