Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Fehler- und Ausnahmebehandlung in PHP

Detaillierte Erläuterung der Fehler- und Ausnahmebehandlung in PHP

黄舟
黄舟Original
2017-08-22 09:41:231644Durchsuche

Jeder Programmierer ist möglicherweise während der Entwicklung auf Fehler gestoßen oder auf Fehler, die aus anderen Gründen verursacht wurden. Wenn der Benutzer nicht bereit ist oder die Einschränkungen der Anwendung nicht befolgt, führt dies natürlich auch zu Fehlern bei der Verwendung. Der folgende Artikel führt Sie hauptsächlich in die häufige Fehler- und Ausnahmebehandlung in PHP ein. Freunde, die es benötigen, können darauf verweisen,

Vorwort

Wann Wenn wir ein Programm entwickeln, kommt es sehr häufig vor, dass das Programm Probleme hat. Wie gehen wir mit Ausnahmen und Fehlern um? Dieser Artikel führt Sie im Detail in den relevanten Inhalt von PHP-Fehlern und der Ausnahmebehandlung ein und teilt ihn als Referenz und zum Studium. Ich werde im Folgenden nicht viel sagen, werfen wir einen Blick auf die detaillierte Einführung:

1 , PHP-Fehlerbehandlung

1. Syntaxfehler

2. Laufzeitfehler

3 . Logischer Fehler: Keine Eingabeaufforderung. Fehler, aber die Funktion ist falsch, am problematischsten >5. Fehlerbericht zeigt:

Sie können das Element „error_reporting“ in php.ini ändern, um den Fehlerberichtstyp einzuschränken, wie zum Beispiel:


Nur Um die Fehleranzeige in einem Skript zu ändern, können Sie

(empfohlen)

error_reporting=E_ALL & ~E_NOTICE
verwenden. 6. Benutzerdefinierter Fehlerbericht:

kann vorgegebene Parameter zur Anzeige von Fehlern wie folgt übergeben:

error_reporting(E_ALL & ~E_NOTICE);

set_error_handler()7. Fehlerprotokolle aufzeichnen

a. Setzen Sie display_errors in PHP.ini auf Off und log_errors auf On

 set_error_handler('reportError');
 $mess="";
 function reportError($error_type,$error_message,$error_file,$error_line){
 global $mess;
 $mess.="发生错误级别为{$error_type}类型,错位信息<b>{$error_message}</b>,在文件{$error_file}中,第{$error_line}行。<br>";
 }
 getType($a);
 echo "1111111<br>";
 getType();
 echo "2222<br>";
 echo $mess;
 /*发生错误级别为8类型,错位信息Undefined variable: a,在文件F:\projects\Frame\FrameTest\BackEnd\regularExpression.php中,第24行。
 发生错误级别为2类型,错位信息gettype() expects exactly 1 parameter, 0 given,在文件F:\projects\Frame\FrameTest\BackEnd\regularExpression.php中,第26行。*/
. Passen Sie das Protokollverzeichnis an


c. Sie können es auch mit error_log="C:/XX/XX/php_error.log" oder ini_get innerhalb des Skripts festlegen


2. PHP-Ausnahmebehandlung

ini_set("display_errors","Off")

1.try Catch ist integriert, es darf kein Code in der Mitte sein

2 .Exception ist eine vom System vordefinierte Klasse

3. Wenn ein Ausnahmeobjekt ausgelöst wird, geben Sie das Ausnahmeobjekt an die Klasse in Catch weiter


Der Code danach Die Ausnahmeposition in try wird nicht mehr ausgeführt, sondern wird direkt an den Catch übertragen, um ausgeführt zu werden



5. Die Ausnahmebehandlung kann zusammen mit Fehlern verwendet werden Behandlung


 try{
 echo "开车上班<br>";
 throw new Exception("车子爆胎了!");
 }catch(Exception $e){//相当于Exception $e = new Exception(&#39;&#39;);
 echo $e->getMessage().&#39;<br>&#39;;
 echo &#39;换上备胎,继续上班<br>&#39;;
 }
6. Angepasste Ausnahmeklasse

a. Die Ausnahmeklasse ist die Basisklasse für alle Ausnahmen und definiert keine spezifischen Ausnahmebehandlungsmethoden (nur einige Methoden zum Erhalten von Eingabeaufforderungen)


b Die benutzerdefinierte Ausnahmeklasse muss eine Unterklasse der Systemklasse sein
 set_error_handler(&#39;reportError&#39;);
 function reportError($error_type,$error_message,$error_file,$error_line){
 if($error_type==E_WARNING){
 throw new Exception("错误信息:{$error_message},错误文件:{$error_file},错误行数{$error_line}");
 }
 }
 function drive($a){
 echo $a;
 }
 try{
 echo "开车上班<br>";
 drive();//忘记传参,触发自定义错误函数中警告性错误,抛出异常
 }catch(Exception $e){//相当于Exception $e = new Exception(&#39;&#39;);
 echo $e->getMessage().&#39;<br>&#39;;
 echo "换上备胎,继续上班<br>";
 }

c Vergessen Sie nicht, den Konstruktor der übergeordneten Klasse zur Initialisierung aufzurufen



7. Hinweis: Try kann auch verschachtelt werden versuchen


 class BTException extends Exception {
 function __construct($message){
 parent::__construct($message);
 }
 function method(){
 return "打开后备箱,拿出工具,换备胎";
 }
 }
 try{
 echo "开车上班<br>";
 throw new BTException("车子爆胎了!");
 }catch(BTException $e){//相当于Exception $e = new Exception(&#39;&#39;);
 echo $e->getMessage().&#39;<br>&#39;;
 echo $e->method().&#39;<br>&#39;;
 echo "换上备胎,继续上班<br>";
 }

Zusammenfassung


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Fehler- und Ausnahmebehandlung in PHP. 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