Methoden der PHP-Fehlerbehandlung: - Verwendung der die()-Methode
- Benutzerdefinierte Fehlerbehandlung
Grundlegende Fehlerbehandlung: using Die die()-Funktion Diedie()-Funktion gibt eine Nachricht aus und beendet das aktuelle Skript.
Syntax:die ($message)
Beispiel:< /b>
// PHP-Code mit Standardfehlerbehandlung
$file
=
fopen
(
"engineer.txt"
,
"w"
);
?>
Hinweis.Führen Sie den obigen Code aus und die Datei engineer.txt fehlt , und dann wird ein Laufzeitfehler angezeigt.
Laufzeitfehler: PHP-Warnung: fopen (engineer.txt): Fehler beim Öffnen des Streams: Permission denied in /home/dac923dff0a2558b37ba742613273073.php on line 2
Um diesen Fehler zu vermeiden, verwenden Sie die Funktion die(). Die Funktion die() ist unten implementiert:Beispiel:
// PHP-Code zum Prüfen auf Fehler
// wenn keine Datei vorhanden ist
// then exit script
if
(!
file_exists
(
"ingenieur.txt"
)) {
die
(
"Datei ist nicht vorhanden"
);
}
// wenn Datei vorhanden ist
// dann fortfahren
else
{
$file
=
fopen
(
" engineer.txt "
,
" w "
);
}
?>
Hinweis.Wenn die Datei engineer .txt fehlt, wird die Ausgabe angezeigt.
BeendenDatei ist nicht vorhanden
Benutzerdefinierte Fehlerbehandlungsprogramme:Erstellen einer benutzerdefinierten Fehlerbehandlung in PHP ist sehr einfach. Erstellen Sie eine Funktion, die aufgerufen werden kann, wenn ein Fehler in PHP auftritt.Syntax:error_function ($error_level, $error_message, $error_file, $error_line, $error_context)
Parameter:Diese Funktion benötigt fünf Parameter wie oben und unten beschrieben:- $error_level: Dies ist ein erforderlicher Parameter und muss eine Ganzzahl sein. Es gibt vordefinierte Fehlerstufen.
- $error_message:Dies ist ein erforderlicher Parameter und dies ist die Nachricht, die der Benutzer drucken möchte.
- $ error_file: ist ein optionaler Parameter, der verwendet wird, um die Datei anzugeben, in der der Fehler aufgetreten ist.
- $error_line:ist ein optionaler Parameter, der verwendet wird, um die Zeilennummer anzugeben, in der der Fehler aufgetreten ist aufgetreten.
- $error_context:Dies ist ein optionaler Parameter, der verwendet wird, um ein Array anzugeben, das jede Variable und ihren Wert enthält, wenn ein Fehler auftritt.
error_level:Dies sind die möglichen Fehlerlevel, die unten aufgelistet sind:- 1: .E_ERROR: fatal run-time error was beended
- 2: E_WARNING: non- schwerwiegender Laufzeitfehler, Ausführung des Skripts gestoppt
- 4: E_PARSE: Kompilierzeitfehler vom Parser generiert
- 8: E_NOT ICE: Das Skript hat etwas gefunden, das ein Fehler sein könnte
- 16: E_CORE_ERROR: schwerwiegende Fehler, die während der ersten Ausführung des Skripts aufgetreten sind
- 32: E_CORE_WARNING: nicht schwerwiegende Fehler, die während der ersten Ausführung des Skripts aufgetreten sind
- 8191: E_ALL: alle Fehler und Warnungen
set_error_handler()-Funktion:Nachdem Sie die myerror()-Funktion erstellt haben, müssen Sie einen benutzerdefinierten Handler für Fehler installieren, da PHP normalerweise damit umgeht, aber wenn Wenn der Benutzer eine benutzerdefinierte Fehlerbehandlung durchführt, sollte der Benutzer sie anstelle eines Arguments und festlegen Übergeben Sie die myerror-Funktion als String.Beispiel:
// Erstelle meine Fehlerfunktion, die die Nachricht ausgibt
// user
function
myerror (
$error_no
,
$error_msg
) {
echo
"Fehler: [$error_no] $error_msg"
;
echo
"Jetzt wird das Skript beendet"
;
// Wenn ein Fehler auftritt, muss das Skript gestoppt werden
sterben
();
}
// Einstellung set_error_handler
set_error_handler (
"myerror"
);
$a
= 10;
$b
= 0;
// Dies wird einen Fehler erzeugen
echo
(
$a
/
$b
) ;;
?>
Ausgabe:Fehler: [2] Division b y null Jetzt wird das Skript beendet
Ausgabe:Versuchen Sie immer, Fehler mit benutzerdefinierter Fehlerbehandlung zu behandeln, da dies je nach Benutzer eine spezifischere Nachricht anzeigt, die für den Benutzer nützlich sein kann. Wenn der Fehler nicht mit benutzerdefinierter Fehlerbehandlung behandelt wird, tritt ein Fehler auf, dann wird das Skript standardmäßig gestoppt, aber wenn es den Fehler mit benutzerdefinierter Fehlerbehandlung behandelt, kann es das Skript nach Anzeige der Fehlermeldung fortsetzen.