Ich schreibe ein Skript in PHP5, das den Code bestimmter Dateien benötigt. Wenn eine Datei für die Aufnahme nicht verfügbar ist, wird zuerst eine Warnung und dann ein schwerwiegender Fehler ausgelöst. Ich möchte eine eigene Fehlermeldung ausgeben, wenn der Code nicht eingefügt werden konnte. Ist es möglich einen letzten Befehl auszuführen, wenn das Require nicht funktioniert? Folgendes hat nicht funktioniert:
%Vor% Wenn Sie alle Fehlermeldungen mit error_reporting(0)
unterdrücken, erhalten Sie nur einen weißen Bildschirm, ohne error_reporting die PHP-Fehler zu verwenden, die ich nicht anzeigen möchte.
Sie können dies erreichen, indem Sie set_error_handler
in Verbindung mit ErrorException
.
Das Beispiel von der ErrorException
Seite ist:
Sobald Sie Fehler als Ausnahmen behandelt haben, können Sie Folgendes tun:
%Vor% Ein besserer Ansatz wäre, realpath zuerst auf dem Pfad zu verwenden. realpath
gibt false
zurück, wenn die Datei nicht existiert.
Sie können sogar Ihre eigene require-Funktion im Namespace Ihrer App erstellen, die die PHP-require-Funktion umschließt
%Vor%Jetzt können Sie es überall in Ihren Dateien verwenden
%Vor%Ich würde vorschlagen, dass Sie sich den letzten Kommentar angesehen haben in der Dokumentation der Funktion set_error_handler () .
Es schlägt folgendes als eine Methode (und mit einem Beispiel) vor, fatale Fehler zu fangen:
%Vor%Ich habe den Vorschlag nicht ausprobiert, aber dies könnte wahrscheinlich in anderen fatalen Fehlerszenarien verwendet werden.
Sie müssen include () verwenden. Require () erzeugt, wenn es in einer nicht existierenden Datei verwendet wird, einen schwerwiegenden Fehler und beendet das Skript, so dass Ihr Die () nicht passieren wird. Include () gibt nur Warnungen aus und das Skript wird fortgesetzt.
Tags und Links php error-handling try-catch require fatal-error