PHP try-catch Block innerhalb der Schleife [duplizieren]

8

Ist es weniger effizient, einen try-catch-Block innerhalb einer Schleife zu platzieren, als die Schleife mit einem try-catch in php zu umhüllen, wenn die Schleife enden soll, wenn eine Ausnahme auftritt? Oder gibt es im Wesentlichen keinen Unterschied?

BEARBEITEN:

d. h.

%Vor%

versus:

%Vor%     
cpburnz 12.01.2011, 20:07
quelle

4 Antworten

30

Das hängt ganz von der Art des Fehlers ab und was Sie in catch vorhaben.

Aber ich verallgemeinere es so

  • Wenn Sie wollen, dass die Schleife bei Exception endet, wickeln Sie die gesamte Schleife
  • Wenn die Schleife fortgesetzt werden soll, nicht

BEARBEITEN

Ausgefallene innerhalb einer Schleife unterbrechen die Schleife nicht implizit

%Vor%

Ausgabe:

%Vor%

Diejenigen, die außerhalb der Schleife fangen, tun

%Vor%

Ausgabe:

%Vor%     
Peter Bailey 12.01.2011 20:10
quelle
1

Es gibt höchstwahrscheinlich keinen Unterschied. Eine Optimierung auf dieser Ebene macht in einer interpretierten Sprache wie PHP normalerweise keinen Sinn.

In den meisten Fällen wird Ihre Logik erfordern , dass Sie den Block trotzdem in die Schleife einfügen. Andernfalls wird die Schleife fortgesetzt, selbst wenn ein Fehler aufgetreten ist.

    
Pekka 웃 12.01.2011 20:09
quelle
1

Das hängt ganz davon ab, wie Sie den Try-Catch nutzen? Ist es sicher, weiterhin durch Ihr Thema zu laufen, wenn eine Ausnahme ausgelöst wurde?

    
Craige 12.01.2011 20:09
quelle
0

Natürlich gibt es einen Unterschied, auf die offensichtlichste Art. Im ersten Fall werden Sie nur auf Fehler prüfen, bevor Sie in die Schleife kommen, wenn die Schleife keine Ausnahme-Werfer hat, lassen Sie es so. Auf der anderen Seite werden Sie es in jeder Iteration überprüfen, was Sie benötigen, wenn Sie Sätze oder Methoden haben ... die Ausnahmen haben können.

Ich weiß nicht, ob ich mich gut erkläre, lass es mich wissen, wenn du verstehst

    
Chuck Birkin 12.01.2011 20:11
quelle

Tags und Links