PHP versuche, Ausnahmen zu fangen

8

Hallo Ich habe einen Code wie folgt:

%Vor%

Die Frage ist: Wenn die do_some_work () ein Problem hat und einen Fehler erzeugt, wird dieser Versuch den Fehler verbergen?

    
Merianos Nikos 11.10.2011, 09:27
quelle

3 Antworten

12

In PHP gibt es zwei Arten von Fehlern. Es gibt Ausnahmen und es gibt Fehler.

try..catch behandelt Ausnahmen, aber es werden keine Fehler behandelt.

Um PHP-Fehler zu finden, müssen Sie die set_error_handler() -Funktion .

Eine Möglichkeit, Dinge zu vereinfachen, ist es, set_error_handler() zu erhalten, um eine Exception auszulösen, wenn ein Fehler auftritt. Sie müssen vorsichtig vorgehen, wenn Sie dies tun, da es das Potenzial hat, alle Arten von Problemen zu verursachen, aber es wäre eine Möglichkeit, try..catch mit allen Fehlern von PHP zu arbeiten.

    
Spudley 11.10.2011, 09:35
quelle
7

Wenn do_some_work() eine Ausnahme auslöst, wird sie eingefangen und ignoriert.

Das try / catch-Konstrukt hat keine Auswirkung auf Standard-PHP-Fehler, nur auf Ausnahmen.

    
Sjoerd 11.10.2011 09:30
quelle
7
  

erzeugt einen schwerwiegenden Fehler

Nein, Catch kann keine Fatal Errors fangen. Sie können nicht einmal mit einem Fehlerhandler.

Wenn Sie alle anderen Fehler abfangen möchten, suchen Sie nach ErrorException und es ist dediziert Verwenden Sie set_error_handler :

%Vor%     
hakre 11.10.2011 09:31
quelle