Heim >Backend-Entwicklung >PHP-Problem >PHP ignoriert fehlerhaften Code

PHP ignoriert fehlerhaften Code

PHPz
PHPzOriginal
2023-05-06 17:47:07773Durchsuche

PHP ist eine sehr beliebte Web-Programmiersprache. Ihre Leistungsfähigkeit spiegelt sich nicht nur in ihrer Flexibilität und Benutzerfreundlichkeit wider, sondern auch in ihrem Fehlerbehandlungsmechanismus. Wenn im PHP-Code ein Fehler auftritt, gibt das PHP-Skript standardmäßig eine Fehlermeldung aus und stoppt die Ausführung. Manchmal müssen wir diese Fehler jedoch ignorieren und das Skript weiter ausführen lassen. Wie kann man also Fehler in PHP ignorieren? In diesem Artikel wird es Ihnen ausführlich vorgestellt.

1. Fehlerstufen

In PHP werden Fehler in verschiedene Stufen unterteilt, z. B. schwerwiegende Fehler, schwerwiegende Fehler, Warnungen usw. Verschiedene Fehlerstufen werden zur Laufzeit unterschiedlich behandelt. Schwerwiegende Fehler stoppen die Ausführung des Skripts direkt, während schwerwiegende Fehler und Warnungen Fehlermeldungen auslösen, die Ausführung des Skripts jedoch nicht stoppen. In PHP sind unterschiedliche Fehlerkonstanten definiert, die unterschiedlichen Fehlerstufen entsprechen. Im Folgenden sind häufige PHP-Fehlerkonstanten und ihre entsprechenden Fehlerstufen aufgeführt:

  1. E_ERROR Schwerwiegender Fehler
  2. E_WARNING Nicht schwerwiegender Fehler
  3. E_PARSE Analysefehler
  4. E_NOTICE Hinweisfehler
  5. E_DEPRECATED Veraltungsfehler
  6. E_STRICT Trict-Fehler

2 . Fehlerbehandlung

PHP bietet einige Funktionen zur Fehlerbehandlung, z. B. die Fehlerprotokollfunktion error_log(), die Ausnahmefunktion throw(), die Fehlermeldungsanzeigefunktion error_reporting() usw. Natürlich können wir auch Fehlerbehandlungsfunktionen anpassen. Im Folgenden finden Sie eine kurze Einführung in die Verwendung dieser Funktionen.

(1) error_log()

error_log()-Funktion wird verwendet, um Fehlerinformationen in der Server-Fehlerprotokolldatei aufzuzeichnen, z. B. in der error_log-Datei von Apache. Diese Funktion hat drei Parameter:

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

$message ist die Fehlermeldung, $message_type ist die Fehlerstufe (der Standardwert ist 0, der ignoriert wird), $destination ist der Pfad der Fehlerprotokolldatei und $extra_headers kann zusätzliche Header-Informationen festlegen für die E-Mail.

(2) Die Funktion throw()

throw() wird verwendet, um eine Ausnahme auszulösen, das heißt, um die Ausführung des Programms direkt zu stoppen und eine Fehlermeldung auszugeben. Diese Funktion verfügt über einen Parameter, der eine Instanz des Ausnahmeobjekts ist.

(3) error_reporting()

error_reporting() wird verwendet, um die Fehlermeldeebene festzulegen. Sie verfügt über einen Parameter, der eine Fehlerkonstante oder das bitweise ODER-Verknüpfungsergebnis mehrerer Fehlerkonstanten ist.

Hier ist ein einfaches Beispiel, das zeigt, wie Sie die Funktion error_reporting() verwenden, um Fehler der E_NOTICE-Ebene zu ignorieren:

error_reporting(E_ALL & ~E_NOTICE);

Indem Sie eine bitweise UND-Operation für E_ALL mit ~E_NOTICE ausführen, können Sie alle Fehlerebenen außer E_NOTICE abrufen. Nach dieser Einstellung ignoriert das PHP-Skript Fehler der Ebene E_NOTICE.

(4) Benutzerdefinierte Fehlerbehandlungsfunktion

PHP ermöglicht es uns, Fehlerbehandlungsfunktionen anzupassen, sodass wir den Pfad der Fehlerprotokolldatei, die Fehlerausgabemethode usw. anpassen können. Wir müssen die Funktion set_error_handler verwenden, um die Fehlerbehandlungsfunktion festzulegen. Diese Funktion verfügt über einen Parameter, nämlich den Namen der benutzerdefinierten Verarbeitungsfunktion.

Hier ist ein einfaches Beispiel:

function custom_error_handler($errno, $errstr, $errfile, $errline) {
    error_log($errstr . "in" . $errfile . " on line " . $errline);
    return true;
}

set_error_handler("custom_error_handler");

Diese benutzerdefinierte Fehlerbehandlungsfunktion schreibt Fehlerinformationen in die Fehlerprotokolldatei des Servers und gibt einen wahren Wert zurück, der angibt, dass der Fehler behandelt wurde.

3. Fehler ignorieren

Schauen wir uns nun an, wie man Fehler in PHP ignoriert. Die Methode ist sehr einfach. Verwenden Sie einfach das @-Symbol, um Fehler zu ignorieren, die Sie nicht behandeln möchten. Zum Beispiel:

$count = @file_get_contents("file.txt");

Diese Anweisung liest den Inhalt der Datei „file.txt“ und weist ihn der Variablen $count zu. Wenn jedoch beim Lesen der Datei ein Fehler auftritt, z. B. wenn die Datei nicht existiert oder nicht Sie haben die Berechtigung zum Lesen usw. und fügen dann hinzu. Sie können den Fehler ignorieren, indem Sie das @-Symbol hinzufügen und die weitere Ausführung des Skripts zulassen.

Es ist zu beachten, dass die Verwendung des @-Symbols zum Ignorieren von Fehlern den Code weniger sicher macht, da dies zu schwer zu findenden Fehlern wie nicht initialisierten Variablen oder falschen Funktionsparametern usw. führen kann. Daher sollten Sie das @-Symbol nur verwenden, wenn Sie sicher sind, dass diese Fehler ignoriert werden können.

4. Zusammenfassung

In PHP ist die Möglichkeit, Fehler zu ignorieren, einfach das @-Symbol zu verwenden. Die Verwendung des @-Symbols kann jedoch zu schwer zu findenden Fehlern führen, daher sollten wir versuchen, die Verwendung zu vermeiden. Wenn Sie Fehler ignorieren möchten, sollten Sie die Funktion set_error_handler() verwenden, um die Fehlerbehandlungsfunktion anzupassen, oder die Funktion error_reporting() verwenden, um die Fehlerberichtsebene festzulegen. Dadurch können wir Fehler in PHP-Programmen flexibler und sicherer behandeln.

Das obige ist der detaillierte Inhalt vonPHP ignoriert fehlerhaften Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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