Anpassung des PHP-Ausnahmehandlers
Es ist unvermeidlich, dass bei der Programmierung ungewöhnliche Fehler auftreten. Was wir tun müssen, ist, Ausnahmen angemessen zu behandeln, damit sie von Benutzern nicht wahrgenommen werden. Heute werde ich eine Methode zum Anpassen von Ausnahmehandlern vorstellen.
Erstellen eines benutzerdefinierten Fehlerhandlers
Das Erstellen eines benutzerdefinierten Fehlerhandlers ist sehr einfach. Wir haben einfach eine dedizierte Funktion erstellt, die aufgerufen werden kann, wenn in PHP ein Fehler auftritt.
Die Funktion muss mindestens zwei Parameter (Fehlerstufe und Fehlermeldung) verarbeiten können, kann aber bis zu fünf Parameter akzeptieren (optional: Datei, Zeilennummer und Fehlerkontext):
Syntax
error_function(error_level,error_message,
error_file,error_line,error_context)
Parameterbeschreibung
error_level
Erforderlich. Gibt die Fehlerberichtsebene für benutzerdefinierte Fehler an. Muss ein Wert sein.
Siehe Tabelle unten: Fehlermeldestufen.
error_message Erforderlich. Gibt Fehlermeldungen für benutzerdefinierte Fehler an.
error_file Optional. Gibt den Namen der Datei an, in der der Fehler aufgetreten ist.
error_line Optional. Gibt die Zeilennummer an, in der der Fehler aufgetreten ist.
error_context Optional. Gibt ein Array an, das alle zum Zeitpunkt des Fehlers verwendeten Variablen und deren Werte enthält.
Fehlerberichtsebenen
Diese Fehlerberichtsebenen sind verschiedene Arten von Fehlern, die Fehlerhandler verarbeiten sollen:
Wertkonstante Beschreibung
2 E_WARNING Nicht schwerwiegend Laufzeitfehler. Unterbrechen Sie die Skriptausführung nicht.
8 E_NOTICE
Laufzeitbenachrichtigung.
Das Skript erkennt, dass möglicherweise ein Fehler auftritt, dieser kann jedoch auch auftreten, während das Skript normal ausgeführt wird.
256 E_USER_ERROR Schwerwiegender benutzergenerierter Fehler. Dies ähnelt E_ERROR, das der Programmierer mit der PHP-Funktion trigger_error() setzt.
512 E_USER_WARNING Nicht schwerwiegende, vom Benutzer generierte Warnung. Dies ähnelt der E_WARNING, die der Programmierer mit der PHP-Funktion trigger_error() setzt.
1024 E_USER_NOTICE Benutzergenerierte Benachrichtigung. Dies ähnelt E_NOTICE, das vom Programmierer mithilfe der PHP-Funktion trigger_error() festgelegt wird.
4096 E_RECOVERABLE_ERROR Abfangbarer schwerwiegender Fehler. Wie E_ERROR, kann aber von einem benutzerdefinierten Handler abgefangen werden. (Siehe set_error_handler())
8191 E_ALL
Alle Fehler und Warnungen, außer Ebene E_STRICT.
(In PHP 6.0 ist E_STRICT Teil von E_ALL)
Jetzt erstellen wir eine Funktion, die Fehler behandelt:
function customError($errno, $errstr) { echo "Error: [$errno] $errstr "; echo "Ending Script"; die(); }
Der obige Code ist eine einfache Fehlerbehandlung Funktion. Wenn es ausgelöst wird, erhält es die Fehlerstufe und die Fehlermeldung. Anschließend werden die Fehlerstufe und die Meldung ausgegeben und das Skript beendet.
Da wir nun eine Fehlerbehandlungsfunktion erstellt haben, müssen wir bestimmen, wann sie ausgelöst werden soll.
Fehlerhandler festlegen
Der Standard-Fehlerhandler von PHP ist der integrierte Fehlerhandler. Wir werden die obige Funktion in den Standard-Fehlerbehandler umwandeln, wenn das Skript ausgeführt wird.
Der Fehlerhandler kann so geändert werden, dass er nur für bestimmte Fehler gilt, sodass das Skript verschiedene Fehler auf unterschiedliche Weise behandeln kann. In diesem Fall verwenden wir jedoch unseren benutzerdefinierten Fehlerhandler für alle Fehler:
set_error_handler("customError");
Da wir möchten, dass unsere benutzerdefinierte Funktion alle Fehler behandelt, set_error_handler() erfordert nur einen Parameter, und ein zweiter Parameter kann hinzugefügt werden, um die Fehlerstufe anzugeben.
Beispiel
Testen Sie diesen Fehlerhandler, indem Sie versuchen, eine Variable auszugeben, die nicht existiert:
<?php //error handler function function customError($errno, $errstr) { echo "Error: [$errno] $errstr"; } //set error handler set_error_handler("customError"); //trigger error echo($test); ?>
Die Ausgabe des obigen Codes sollte wie folgt aussehen:
Fehler: [8] Undefinierte Variable: Test
Fehler auslösen
Wenn der Benutzer Daten in das Skript eingibt, ist es sinnvoll, einen Fehler auszulösen, wenn die Eingabe des Benutzers ungültig ist. In PHP wird diese Aufgabe durch trigger_error() erledigt.
Beispiel
Wenn in diesem Beispiel die Variable „test“ größer als „1“ ist, tritt ein Fehler auf:
$ test=2;
if ($test>1)
{
trigger_error("Wert muss 1 oder kleiner sein");
}
?>
Die Ausgabe des obigen Codes sollte etwa so aussehen:
Hinweis: Der Wert muss 1 oder kleiner sein
in C :webfoldertest.php in Zeile 6
Sie können an einer beliebigen Stelle im Skript einen Fehler auslösen. Durch Hinzufügen des zweiten Parameters können Sie die Fehlerstufe angeben, die ausgelöst wird.
Mögliche Fehlertypen:
E_USER_ERROR – Schwerwiegender, vom Benutzer generierter Laufzeitfehler. Der Fehler kann nicht behoben werden. Die Skriptausführung wurde unterbrochen.
E_USER_WARNING – Nicht schwerwiegende, vom Benutzer generierte Laufzeitwarnung. Die Skriptausführung wird nicht unterbrochen.
E_USER_NOTICE – Standard. Vom Benutzer generierte Laufzeitbenachrichtigungen. Das Skript hat einen möglichen Fehler gefunden, der möglicherweise während der normalen Ausführung des Skripts aufgetreten ist.
Beispiel
Wenn in diesem Beispiel die Variable „test“ größer als „1“ ist, tritt der Fehler E_USER_WARNING auf. Wenn E_USER_WARNING auftritt, verwenden wir unseren benutzerdefinierten Fehlerhandler und beenden das Skript:
1) { trigger_error("Value must be 1 or below",E_USER_WARNING); } ?>
Die Ausgabe des obigen Codes sollte wie folgt aussehen:
Fehler: [512] Wert muss sein 1 oder niedriger
Endskript
Da wir nun gelernt haben, wie wir unsere eigenen Fehler erstellen und auslösen können, werfen wir einen Blick auf die Fehlerprotokollierung.
Fehleraufzeichnung
默认地,根据在 php.ini 中的 error_log 配置,PHP 向服务器的错误记录系统或文件发送错误记录。通过使用 error_log() 函数,您可以向指定的文件或远程目的地发送错误记录。
通过电子邮件向您自己发送错误消息,是一种获得指定错误的通知的好办法。
通过 E-Mail 发送错误消息
在下面的例子中,如果特定的错误发生,我们将发送带有错误消息的电子邮件,并结束脚本:
<?php //error handler function function customError($errno, $errstr) { echo "Error: [$errno] $errstr "; echo "Webmaster has been notified"; error_log("Error: [$errno] $errstr",1, "someone@example.com","From: webmaster@example.com"); } //set error handler set_error_handler("customError",E_USER_WARNING); //trigger error $test=2; if ($test>1) { trigger_error("Value must be 1 or below",E_USER_WARNING); } ?>
以上代码的输出应该类似这样:
Error: [512] Value must be 1 or below
Webmaster has been notified
接收自以上代码的邮件类似这样:
Error: [512] Value must be 1 or below
这个方法不适合所有的错误。常规错误应当通过使用默认的 PHP 记录系统在服务器上进行记录。
相关推荐:
Das obige ist der detaillierte Inhalt vonAnpassung des PHP-Ausnahmehandlers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

In PHP8 sind Übereinstimmungsausdrücke eine neue Kontrollstruktur, die unterschiedliche Ergebnisse basierend auf dem Wert des Expression zurückgibt. 1) Es ähnelt einer Switch -Anweisung, gibt jedoch einen Wert anstelle eines Ausführungsanweisungsblocks zurück. 2) Der Match -Ausdruck wird streng verglichen (===), was die Sicherheit verbessert. 3) Es vermeidet mögliche Auslassungen in Switch -Anweisungen und verbessert die Einfachheit und Lesbarkeit des Codes.

In PHP können Sie CSRF -Angriffe effektiv verhindern, indem Sie unvorhersehbare Token verwenden. Spezifische Methoden umfassen: 1. CSRF -Token in der Form erzeugen und einbetten; 2. Überprüfen Sie die Gültigkeit des Tokens bei der Bearbeitung der Anfrage.

PS -Karte ist "Laden"? Zu den Lösungen gehören: Überprüfung der Computerkonfiguration (Speicher, Festplatte, Prozessor), Reinigen der Festplattenfragmentierung, Aktualisierung des Grafikkartentreibers, Anpassung der PS -Einstellungen, der Neuinstallation von PS und der Entwicklung guter Programmiergewohnheiten.

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

Strenge Typen in PHP werden durch Hinzufügen von Declare aktiviert (strict_types = 1); oben in der Datei. 1) IT erzwingt die Typprüfung der Funktionsparameter und der Rückgabewerte, um die implizite Typumwandlung zu verhindern. 2) Die Verwendung strenger Typen kann die Zuverlässigkeit und Vorhersehbarkeit des Codes verbessern, Fehler reduzieren und die Wartbarkeit und Lesbarkeit verbessern.

In PHP wird das endgültige Schlüsselwort verwendet, um zu verhindern, dass Klassen vererbt werden, und die Methoden überschrieben werden. 1) Wenn die Klasse als endgültig markiert wird, kann die Klasse nicht vererbt werden. 2) Wenn die Methode als endgültig markiert wird, kann die Methode nicht von der Unterklasse neu geschrieben werden. Durch die Verwendung von endgültigen Schlüsselwörtern wird die Stabilität und Sicherheit Ihres Codes sichergestellt.

Die Zukunft von PHP wird erreicht, indem sich an neue Technologietrends angepasst und innovative Funktionen eingeführt werden: 1) Anpassung an Cloud Computing, Containerisierung und Microservice -Architekturen, Unterstützung von Docker und Kubernetes; 2) Einführung von JIT -Compilern und Aufzählungsarten zur Verbesserung der Leistung und der Datenverarbeitungseffizienz; 3) die Leistung kontinuierlich optimieren und Best Practices fördern.
