Was nützt die PHP-Ausnahmebehandlung?

烟雨青岚
Freigeben: 2023-04-09 06:12:02
Original
2298 Leute haben es durchsucht

Die Ausnahmebehandlung (Exception) wird verwendet, um den normalen Ablauf des Skripts zu ändern, wenn ein bestimmter Fehler auftritt. Wenn eine Ausnahme ausgelöst wird, wird der folgende Code nicht weiter ausgeführt und PHP versucht, einen passenden „catch“-Codeblock zu finden.

Was nützt die PHP-Ausnahmebehandlung?

Eine Ausnahme wird verwendet, um den normalen Ablauf des Skripts zu ändern, wenn ein bestimmter Fehler auftritt.

Grundlegende Verwendung von Ausnahmen

Wenn eine Ausnahme ausgelöst wird, wird der folgende Code nicht weiter ausgeführt, PHP versucht Suchen passende „Catch“-Codeblöcke.

Wenn die Ausnahme nicht abgefangen wird und keine Notwendigkeit besteht, set_Exception_handler() für die entsprechende Verarbeitung zu verwenden, tritt ein schwerwiegender Fehler (schwerwiegender Fehler) auf und es wird die Fehlermeldung „Uncaught Exception“ ausgegeben.

Versuchen wir, eine Ausnahme auszulösen, ohne sie abzufangen:

<?php
//create function with an exception
function checkNum($number)
{
if($number>1)
 {
 throw new Exception("Value must be 1 or below");
 }
return true;
}
//trigger exception
checkNum(2);
?>
Nach dem Login kopieren

Der obige Code erhält einen Fehler wie diesen:

Fatal error: Uncaught exception &#39;Exception&#39; 
with message &#39;Value must be 1 or below&#39; in C:\webfolder\test.php:6 
Stack trace: #0 C:\webfolder\test.php(12): 
checkNum(28) #1 {main} thrown in C:\webfolder\test.php on line 6
Nach dem Login kopieren

Versuchen, werfen und fangen

Um die Fehler im obigen Beispiel zu vermeiden, müssen wir geeigneten Code zur Behandlung von Ausnahmen erstellen.

Der richtige Handler sollte Folgendes enthalten:

Try – Funktionen, die Ausnahmen verwenden, sollten sich in einem „try“-Block befinden. Wenn keine Ausnahme ausgelöst wird, wird die Ausführung des Codes wie gewohnt fortgesetzt. Wenn jedoch eine Ausnahme ausgelöst wird, wird eine Ausnahme ausgelöst. Auslösen – Dies gibt an, wie die Ausnahme ausgelöst werden soll. Jeder „Throw“ muss mindestens einem „catch“Catch entsprechen – der „catch“-Codeblock fängt die Ausnahme ab und erstellt ein Objekt mit den Ausnahmeinformationen

Lassen Sie uns eine Ausnahme auslösen:

<?php
//创建可抛出一个异常的函数
function checkNum($number)
{
if($number>1)
 {
 throw new Exception("Value must be 1 or below");
 }
return true;
}
//在 "try" 代码块中触发异常
try
{
checkNum(2);
//If the exception is thrown, this text will not be shown
echo &#39;If you see this, the number is 1 or below&#39;;
}
//捕获异常
catch(Exception $e)
{
echo &#39;Message: &#39; .$e->getMessage();
}
?>
Nach dem Login kopieren

Der obige Code erhält einen Fehler ähnlich diesem:

Meldung: Wert muss 1 oder kleiner sein

Erklärung des Beispiels:

Der obige Code Eine Ausnahme wurde ausgelöst und abgefangen:

Erstellen Sie die Funktion checkNum(). Es erkennt, ob die Zahl größer als 1 ist. Wenn ja, lösen Sie eine Ausnahme aus. Rufen Sie die Funktion checkNum() im Block „try“ auf. In der Funktion checkNum() wird eine Ausnahme ausgelöst. Der Codeblock „catch“ empfängt die Ausnahme und erstellt ein Objekt ($e), das die Ausnahmeinformationen enthält. Durch den Aufruf von $e->getMessage() aus diesem Ausnahmeobjekt wird die Fehlermeldung der Ausnahme ausgegeben

Um jedoch dem Prinzip „Jedem Wurf muss ein Fang entsprechen“ zu folgen, muss ein Top -Level-Ausnahme kann so eingestellt werden, dass der Prozessor übersehene Fehler behandelt.

Empfohlenes Tutorial: „PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWas nützt die PHP-Ausnahmebehandlung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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