Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Beispiele für PHP-Fehlerbehandlungsmechanismen

Detaillierte Erläuterung der Beispiele für PHP-Fehlerbehandlungsmechanismen

怪我咯
怪我咯Original
2017-07-07 10:21:161145Durchsuche

Dieser Artikel stellt hauptsächlich die relevanten Informationen zum PHP-Fehlerbehandlungsmechanismus vor. Er ist sehr detailliert und sehr praktisch. Freunde, die ihn benötigen, können darauf zurückgreifen.

Im täglichen Projektentwicklungsprozess wird es immer welche geben Wenn wir die unerwarteten Ausnahmefehler nicht relativ gut behandeln, sieht das Programm sehr unprofessionell aus und kann für andere zu einer wirksamen Information werden, um das System anzugreifen. Wenn keine Fehlermeldung vorliegt, können wir nur nachsehen Es ist für uns von Anfang an schrecklich, Hunderte oder Tausende von Codezeilen im Projekt zu kennen. Wie können wir das Projekt während des Projektentwicklungsprozesses schnell und genau lokalisieren und damit umgehen? Dementsprechend basiert dieser Artikel auf meinem eigenen Verständnis von Fehlern und der Ausnahmebehandlung und ich werde ihn mit allen teilen, um zu lernen und miteinander zu kommunizieren, und als Memo dienen.

Systemfehlerbehandler:

PHP Unter normalen Umständen werden Fehler normal ausgegeben, aber in einigen Frameworks kann dies Auswirkungen auf die Fehlerausgabe haben, möglicherweise auf das Framework Es handelt sich um einen eigenen Verarbeitungsmechanismus, oder es kann im Code verarbeitet werden. Im Allgemeinen sind diese Funktionseinstellungen:

1.error_reporting(); Legen Sie die Fehlerberichtsebene von PHP fest und geben Sie den aktuellen Wert zurück level

error_reporting(report_level)

Wenn der Parameter level nicht angegeben ist, wird der aktuelle Fehlerlevel zurückgegeben. Die folgenden Elemente sind mögliche Werte des Niveaus:

32 >64PHP

>E_USER_ERROREin schwerwiegender benutzergenerierter Fehler, ähnlich einem Programmierer, der die PHP-

Wert

Konstante

Beschreibung

1

E_ERROR

SCHWERWIEGENDER Laufzeitfehler. Dieser Fehler kann nicht recycelt werden. Die Skriptausführung wurde unterbrochen.

2

E_WARNING

Nicht schwerwiegende Laufzeitwarnung. Die Skriptausführung wird nicht unterbrochen.

4

E_PARSE

Fehler bei der Kompilierungszeitanalyse. Beim Parsen sollten nur Fehler

8

E_NOTICE

Runtime generiert werden Benachrichtigung. Das gefundene Skript kann ein Fehler sein, aber normalerweise kann es beim Ausführen eines Skripts passieren

16

E_CORE_ERROR

Schwerwiegender Fehler beim PHPStart. Das ist wie der E_ERROR

im Kern von

PHP

E_CORE_WARNING

Warnung, wenn PHP startet. Dies ist wie die E_WARNING

E_COMPILE_ERROR

Schwerwiegender Fehler bei der Kompilierung. Dies ist, als würde man die Zend-Skript-Engine übergeben, um E_ERROR

128

E_COMPILE_WARNING

Nicht schwerwiegende Warnung zur Kompilierungszeit. Dies ist, als würde man die

Zend-Skript-Engine übergeben, um E_WARNING

256

-Funktion

verwendet trigger_error () setze E_ERROR

512

E_USER_WARNING

Nicht schwerwiegende, vom Benutzer generierte Warnung Ähnlich wie Programmierer die PHP--Funktion trigger_error verwenden, um E_WARNING

festzulegen

1024

E_USER_NOTICE

Benutzergenerierte Benachrichtigung, dies ähnelt der Verwendung der PHP -Funktion durch Programmierer trigger_error Setzen Sie E_NOTICE

2048

E_STRICT

Laufzeitbenachrichtigung. PHPSchlagen Sie Änderungen an Ihrem Code vor, um die Interoperabilität und Kompatibilität dieses Codes zu verbessern

4096

E_RECOVERABLE_ERROR

Abfangbarer schwerwiegender Fehler, ähnlich zu E_ERROR, kann aber vom benutzerdefinierten Handler erfasst werden (siehe set_error_handler())

8191

E_ALL

Alle Fehler und Warnungen, außer Stufe E_STRICT ( in PHP6.0, E_STRICT wird Teil davon sein E_ALL)

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

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)

Parameter

参数

描述

error_function

必需。规定发生错误时运行的函数。

error_types

可选。规定在哪个错误报告级别会显示用户定义的错误。默认是 "E_ALL"。

error_function Erforderlich. Gibt die Funktion an, die ausgeführt werden soll, wenn ein Fehler auftritt.
error_types

Optional. Gibt an, auf welcher Fehlerberichterstattungsebene benutzerdefinierte Fehler angezeigt werden. Der Standardwert ist „E_ALL“.

Tipp: Wenn diese Funktion verwendet wird, wird die Standard-Fehlerbehandlungsfunktion von PHP vollständig umgangen. Bei Bedarf muss der benutzerdefinierte Fehlerhandler das Skript beenden (die()). Vor der Ausführung des Skripts tritt ein Fehler auf. Da das benutzerdefinierte Programm zu diesem Zeitpunkt noch nicht registriert wurde, wird der benutzerdefinierte Fehlerhandler nicht verwendet.

Der Testcode lautet wie folgt:

// 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
/**
 *
 * @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);
Das obige Programm führt zu Ergebnissen:


Benutzerdefinierter Fehlerauslöser

Definition und Verwendung

Funktion „trigger_error()“ Benutzerdefinierte Fehlermeldungen erstellen.

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)

Parametererror_messageerror_types

Beschreibung

Erforderlich. Gibt die Fehlermeldung an. Die Längenbeschränkung beträgt

1024
Zeichen.

可选。规定错误消息的错误类型。 可能的值:

  • E_USER_ERROR

  • E_USER_WARNING

  • E_USER_NOTICE

测试代码如下:

/**
 *
 * @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);
}

运行结果如下:

WARNING:
错误编号:512
错误信息:这是错误啊

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für PHP-Fehlerbehandlungsmechanismen. 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