Benutzerdefinierter PHP-Fehlerbehandler

(*-*)浩
Freigeben: 2023-02-23 22:14:01
Original
2167 Leute haben es durchsucht

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.

Benutzerdefinierter PHP-Fehlerbehandler

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();
?>
Nach dem Login kopieren

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();
?>
Nach dem Login kopieren

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();
?>
Nach dem Login kopieren

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!

Verwandte Etiketten:
php
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage