Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Fehler- und Ausnahmebehandlung

PHP-Fehler- und Ausnahmebehandlung

墨辰丷
墨辰丷Original
2018-06-09 09:35:161412Durchsuche

Dieser Artikel stellt hauptsächlich die PHP-Fehler- und Ausnahmebehandlung vor. Ich hoffe, dass er für alle hilfreich ist.

Im täglichen Projektentwicklungsprozess wird es immer einige ungewöhnliche Fehler geben, mit denen wir nicht gerechnet haben. Wenn wir damit nicht relativ gut umgehen, wird das Programm sehr unprofessionell aussehen und wahrscheinlich scheitern Wird zu einer wirksamen Information für andere, um das System anzugreifen. Wenn zu diesem Zeitpunkt keine Fehlermeldung vorliegt, können wir uns den Code nur von Anfang an ansehen Codezeilen im Projekt sind für uns sehr wichtig. Wie können wir also Ausnahmen und Fehler während des Projektentwicklungsprozesses schnell und genau lokalisieren und sie entsprechend behandeln? Ausnahmebehandlung zum Teilen mit Ihnen. Jeder lernt voneinander und dient als Erinnerung.

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 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 mögliche Werte des Niveaus:

WertKonstanteBeschreibung1E_ERROR SCHWERWIEGENDER Laufzeitfehler. Dieser Fehler kann nicht recycelt werden. Die Skriptausführung wurde unterbrochen. 32 >64PHP

>E_USER_ERRORSchwerwiegender benutzergenerierter Fehler, ähnlich einem Programmierer, der die PHP 2048E_STRICTAlle Fehler und Warnungen außer Level In PHP6.0 wird E_STRICT

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

trigger_error() Setzen Sie E_ERROR

512

E_USER_WARNING

Nicht schwerwiegende, vom Benutzer generierte Warnung, ähnlich dazu, was Programmierer mit der PHP--Funktion trigger_error verwenden, um E_WARNING

1024

E_USER_NOTICE

Benutzergenerierte Benachrichtigung, dies ähnelt der Verwendung der PHP

-Funktion trigger_error Setzen Sie E_NOTICE

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 durch einen benutzerdefinierten Handler erfasst werden (siehe set_error_handler()) E_ALL

E_STRICT

(

E_ALL
Teil von)

sein

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)

Benutzerdefinierter Fehlerauslöser

Definition und Verwendung

trigger_error( )-Funktion 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)

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

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

Das obige Programm führt Ergebnisse aus:


 src=

Parameter Beschreibung error_messageErforderlich. Gibt die Fehlermeldung an. Die Längenbeschränkung beträgt error_types

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
错误信息:这是错误啊

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php字符串及流程控制的方法

PHP实现全角字符转为半角的方法

php实现针对html标签中结束标签的检测与补全功能

Das obige ist der detaillierte Inhalt vonPHP-Fehler- und Ausnahmebehandlung. 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