Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Fehlerbehandlungsmechanismus

PHP-Fehlerbehandlungsmechanismus

高洛峰
Freigeben: 2023-03-04 15:06:01
Original
1607 Leute haben es durchsucht

Im täglichen Projektentwicklungsprozess wird es immer einige unerwartete ungewöhnliche Fehler geben. Wenn wir nicht relativ gut damit umgehen, wird das Programm sehr unprofessionell aussehen und es ist wahrscheinlich, dass es von jemand anderem angegriffen wird System; Einige Fehlerausnahmen beenden die Skriptausführung. Wenn zu diesem Zeitpunkt keine Fehlermeldung angezeigt wird, können wir uns nur den Code von Anfang an ansehen. Wir müssen wissen, dass es sich um Hunderte oder Tausende von Codezeilen handelt Wie können wir also Ausnahmen und Fehler während des Projektentwicklungsprozesses schnell und genau lokalisieren und entsprechend behandeln? Dieser Artikel nutzt mein eigenes Verständnis der Fehler- und Ausnahmebehandlung und teilt es dann mit allen, um voneinander zu lernen als Erinnerung dienen.

Systemfehlerbehandler:

PHP Unter normalen Umständen werden Fehler normal ausgegeben, aber in einigen Frameworks kann es sein, dass das Framework selbst über eine eigene Verarbeitung verfügt Mechanismus, oder es kann im Code verarbeitet werden, normalerweise diese Funktionseinstellungen:

1.error_reporting(); Legen Sie die Fehlerstufe von PHP fest und geben Sie die aktuelle Stufe zurück

error_reporting(report_level)

Wenn die Parameterebene nicht angegeben ist, wird die aktuelle Fehlerebene zurückgegeben. Die folgenden Elemente sind die möglichen Werte von level:

PHP 错误处理机制

Hier ist zu beachten, dass die Fehlerausgabe deaktiviert ist, wenn $level 0 ist, d. h. es werden keine Fehler ausgegeben ausgegeben wird.

2.set_error_handler()

Definition und Verwendung

Die Funktion set_error_handler() legt eine benutzerdefinierte Fehlerbehandlungsfunktion fest.

Diese Funktion wird verwendet, um zur Laufzeit eine eigene Fehlerbehandlungsmethode des Benutzers zu erstellen.

Diese Funktion gibt den alten Fehlerhandler oder bei einem Fehler Null zurück.

Syntax

set_error_handler(error_function,error_types)

PHP 错误处理机制

Tipp: Wenn diese Funktion verwendet wird, werden Standard-PHP-Fehler vollständig vom Handler umgangen Funktion, ggf. muss der benutzerdefinierte Fehlerhandler das Skript beenden (die()),

Hinweis: Wenn ein Fehler auftritt, bevor das Skript ausgeführt wird, da das benutzerdefinierte Programm zu diesem Zeitpunkt noch nicht registriert wurde , es Dieser benutzerdefinierte Fehlerhandler wird nicht verwendet.

Der Testcode lautet wie folgt:

/**
 *
 * @param type $error_level 错误级别
 * @param type $error_message    错误信息
 * @param type $error_file 可选 错误文件
 * @param type $error_line 可选 错误行
 * @param type $error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。
 */
function my_error($error_level, $error_message, $error_file, $error_line, $error_context) {
  echo date('Y-m-d H:i:s') . $error_level . $error_message . $error_file . $error_line;
  var_dump($error_context);
}
set_error_handler('my_error', E_ALL);
print_r($a);
Nach dem Login kopieren

// Aus dem obigen Fall können wir erkennen, dass das System bei der Registrierung der my_error-Methode automatisch die ursprüngliche Fehlerbehandlung error_fuction überschreibt( )-Methode

Benutzerdefinierter Fehlerauslöser

Definition und Verwendung

Die Funktion „trigger_error()“ erstellt eine benutzerdefinierte Fehlermeldung.

trigger_error() wird verwendet, um unter benutzerdefinierten Bedingungen eine Fehlermeldung auszulösen. Es wird mit dem integrierten Fehlerhandler oder mit benutzerdefinierten Funktionen verwendet, die mit der Funktion set_error_handler() erstellt wurden.

Wenn ein unzulässiger Fehlertyp angegeben ist, gibt diese Funktion „false“ zurück, andernfalls gibt sie „true“ zurück.

Syntax

trigger_error(error_message,error_types)

PHP 错误处理机制

Der Testcode lautet wie folgt:

/**
 *
 * @param type $level
 * @param type $msg
 */
function my_error($level, $msg) {
  switch ($level) {
  case E_USER_ERROR:
    echo "ERROR:<br/>";
    break;
  case E_USER_WARNING:
    echo "WARNING:<br/>";
    break;
  case E_USER_NOTICE:
    echo "NOTICE:<br/>";
    break;
  default:
    break;
  }
  echo "错误编号:" . $level . " <br/>";
  echo "错误信息:" . $msg;
}
//注册错误处理器
set_error_handler(&#39;my_error&#39;);
if (89 > 8) {
  //调用错误触发器
  trigger_error(&#39;这是错误啊&#39;, E_USER_WARNING);
}
Nach dem Login kopieren

Die laufenden Ergebnisse sind wie folgt:

WARNUNG:
Fehlernummer: 512
Fehlermeldung: Dies ist ein Fehler

Das Obige ist hoffentlich der gesamte Inhalt dieses Artikels es gefällt dir.

Weitere Artikel zum PHP-Fehlerbehandlungsmechanismus finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
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