Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen PHP-Ausnahmebehandlung und Fehlerbehandlung

Der Unterschied zwischen PHP-Ausnahmebehandlung und Fehlerbehandlung

(*-*)浩
(*-*)浩Original
2019-09-16 10:21:394194Durchsuche

Die Konzepte „Fehler“ und „Ausnahme“ sind sehr ähnlich und können leicht verwechselt werden. Sowohl „Fehler“ als auch „Ausnahme“ weisen darauf hin, dass ein Problem mit dem Projekt vorliegt, und beide liefern relevante Informationen und Fehlertypen.

Der Unterschied zwischen PHP-Ausnahmebehandlung und Fehlerbehandlung

Der „Ausnahmemechanismus“ erschien jedoch nach dem „Fehlermechanismus“, und „Ausnahme“ ist der Mangel bei der Vermeidung von „Fehlern“. (Empfohlenes Lernen: PHP-Programmierung vom Anfänger bis zum Experten)

Der wichtigere Punkt ist, dass die häufigste Funktionsbeschreibung, die wir gesehen haben, die häufigste Funktionsbeschreibung ist, da die „Fehler“-Informationen nicht umfangreich sind: Return * bei Erfolg **, gibt FALSE zurück, wenn ein Fehler auftritt. Es kann jedoch viele Gründe für einen Funktionsfehler geben, und es gibt noch mehr Arten von Fehlern. Ein einfaches FALSE kann dem Aufrufer nicht die spezifische Fehlermeldung mitteilen 🎜>

In PHP werden Ausnahmen im Code selbst (im Allgemeinen durch die Umgebung oder illegale Syntax verursacht) als Fehler bezeichnet, und logische Fehler, die während des Betriebs auftreten, werden als Ausnahmen bezeichnet. Fehler können vom Code nicht behandelt werden, Ausnahmen jedoch wird durch try./catch-Verarbeitung verarbeitet.

Ausnahme

Eine Ausnahme ist ein Objekt der Exception-Klasse. Sie wird ausgelöst, wenn ein Problem auftritt Durch die Delegation von Verantwortlichkeiten können Ausnahmen auch defensiv genutzt werden, um potenzielle Probleme zu antizipieren und deren Auswirkungen abzumildern.

Ausnahmeobjekt hat zwei Haupteigenschaften: eine ist die Nachricht und die andere ist der numerische Code. Wir können diese beiden Eigenschaften mit getCode() bzw. getMessage() erhalten.

Ausnahmebehandler

Wie sollen wir also jede Ausnahme abfangen, die möglicherweise ausgelöst wird?

PHP ermöglicht es uns, einen globalen Ausnahmehandler zu registrieren, um alle nicht erfassten Ausnahmen abzufangen.

Ausnahmehandler werden mit der Funktion set_Exception_handler() registriert (hier werden anonyme Funktionen verwendet).

set_exception_handler(function (Exception $e)
{
	echo "我自己定义的异常处理".$e->getMessage();
});
throw new Exception("this is a exception");
 
//运行结果:我自己定义的异常处理this is a exception

Fehler

Neben Ausnahmen stellt PHP auch Funktionen zur Fehlermeldung zur Verfügung. PHP kann verschiedene Arten von Fehlern auslösen, z. B. schwerwiegende Fehler, Laufzeitfehler, Fehler bei der Kompilierung, Startfehler und vom Benutzer ausgelöste Fehler. Die Fehlerberichtsmethode kann in php.ini eingestellt werden (hier keine weitere Erklärung)

Fehlerbehandler

Wie der Ausnahmebehandler können wir

auch Sie verwenden set_error_handler(), um einen globalen Fehlerhandler zu registrieren und Ihre eigene Logik zum Abfangen und Behandeln von PHP-Fehlern zu verwenden.

Wir müssen die Funktion die() oder exit() im Fehlerhandler aufrufen. Wenn es nicht aufgerufen wird, setzt das PHP-Skript die Ausführung an der Stelle fort, an der der Fehler aufgetreten ist. Wie folgt:

set_error_handler(function ($errno,$errstr,$errfile,$errline)//常用的四个参数
{
	echo "错误等级:".$errno."<br>错误信息:".$errstr."<br>错误的文件名:".$errfile."<br>错误的行号:".$errline;
	exit();
});
 
trigger_error("this is a error");//自行触发的错误
 
echo &#39;正常&#39;;

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen PHP-Ausnahmebehandlung und Fehlerbehandlung. 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
Vorheriger Artikel:Ist PHP weit verbreitet?Nächster Artikel:Ist PHP weit verbreitet?