Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Mechanismus zur Ausnahme- und Fehlerbehandlung

PHP-Mechanismus zur Ausnahme- und Fehlerbehandlung

WBOY
WBOYOriginal
2016-08-08 09:19:30815Durchsuche

PHP-Ausnahme- und Fehlerbehandlungsmechanismus


In der tatsächlichen Entwicklung werden Fehler und Ausnahmen erkannt by try{}catch() allein reicht nicht aus. Zitieren Sie also die folgenden Funktionen.

Lassen Sie uns zunächst über Ausnahmen sprechen:

Zunächst müssen Sie verstehen, dass Ausnahmen Situationen außerhalb der normalen Logik sind, während sich Fehler beispielsweise auf Fehler während der Laufzeit beziehen , Eine undefinierte Variable wird verwendet usw. Die Ausnahme muss ausgelöst werden, um abgefangen zu werden, und der Fehler führt dazu, dass die Programmausführung beendet wird

1. Die übliche Methode zur Behandlung von Ausnahmen ist die Verwendung von try{}catch {} Von throw ausgelöste Ausnahmen abfangen

[php]-Ansicht Klarschrift

  1. versuchen{
  2. werfen newException("kkkkkkkkkkkkkk"); 🎜>catch(Exception $e
  3. ){
  4. echo $e
  5. ->getMessage(), "
    "
    ,$e->getTraceAsString(); }
  6. 2. Legen Sie die Ausnahmebehandlung über die Funktion set_Exception_handler fest. In diesem Fall kann die Ausnahme auch ohne try{}catch{} ausgelöst werden wird automatisch von der Funktion abgefangen, die durch set_Exception_handler
  7. [php] view festgelegt wird Klarschrift

set_Exception_handler(

'ExceptionHandler'

);
  1. werfen neu
  2. Ausnahme("kkkkkkkkkkkkkkkk" FunktionExceptionHandler(Exception $Exception
  3. ){ echo
  4. $Exception
  5. ->getMessage(); }
  6. Lassen Sie uns als nächstes Fehler besprechen:
  7. Wenn das Programm schief geht, wird es normalerweise PHP tun Gibt eine Fehlerinformation aus, um das Debuggen zu erleichtern. Die Ausgabe dieser Informationen kann jedoch über die Funktion error_reporting() gesteuert werden. Fehler in PHP werden in Ebenen und Typen unterteilt: E_ALL – alle Fehler und Warnungen (außer E_STRICT)
  8. E_ERROR – schwerwiegende Laufzeitfehler
E_WARNING – Laufzeitwarnungen (nicht -schwerwiegende Fehler) E_PARSE – Parsing-Fehler zur Kompilierungszeit
E_NOTICE – Laufzeiterinnerungen (diese werden häufig durch Fehler in Ihrem Code verursacht oder können durch absichtliches Verhalten verursacht werden.)

E_STRICT – Warnung zur Kodierungsstandardisierung, Dadurch kann PHP empfehlen, wie der Code geändert werden kann, um optimale Interoperabilität und Vorwärtskompatibilität sicherzustellen.

E_CORE_ERROR – Schwerwiegender Fehler während der PHP-Startinitialisierung

E_CORE_WARNING – Warnung (nicht schwerwiegender Fehler) während der PHP-Startinitialisierung
E_COMPILE_ERROR – Schwerwiegender Fehler zur Kompilierungszeit
E_COMPILE_WARNING – Warnung zur Kompilierungszeit (nicht schwerwiegender Fehler). )
E_USER_ERROR – benutzerdefinierte Fehlermeldung
E_USER_WARNING – benutzerdefinierte Warnmeldung
E_USER_NOTICE – benutzerdefinierte Erinnerungsnachricht


Wenn error_reporting(E_NOTICE) eingestellt ist, wird die Das Programm gibt nur Informationen auf E_NOTICE-Ebene aus. Wenn wir es verwenden, müssen wir im Allgemeinen nur error_reporting(E_ALL&!E_WARNING) festlegen.

Wir haben oben gesehen, dass es einen Fehler namens
Benutzerdefinierte Fehlermeldung , was ist das? Schauen wir uns zunächst ein Beispiel an


[php] view Klarschrift

  1. set_error_handler('errorHandler');  
  2. trigger_error("aaaaaaasssssssssss",E_USER_ERROR);  
  3. function errorHandler($errno,$errstr ){  
  4. "white-space:pre">  if($errno==E_USER_ERROR){  
  5. "white-space:pre">      echo "innnnnnnni:",$errstr;  
  6. "white-space:pre">  }  
  7. "white-space:pre">    
  8. }  
输出结果:

[php] view Klarschrift

  1. innnnnnnni:aaaaaaasssssssssss  

trigger_error()就是用来抛出用户自定义错误消息的函数, 通过这个我们能抛出自定义的一些消息被当作错误来处理, 比如严重的逻辑问题

上面的程序我们看到,当程序出错时,除了让Php默认输出出错信息外,下面来看个例子

[ php] Ansicht Klarschrift

  1. set_error_handler('errorHandler');  
  2. echo "dddddddddddd
    "
    ;  
  3. echo $cc;//$cc没有定义,echo会出错  
  4. function errorHandler($errno ,$errstr){  
  5.     
  6. if($errno==E_NOTICE){  
  7.         
  8. echo "innnnnnnni:" ,$errstr;  
  9.     }  
  10. }  
输出结果:
ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddinnnnnnnni:Undefinierte Variable: cc



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