Kommen Sie herum und erhöhen Sie IndexError

8

Mein Code ist wie folgt:

%Vor%

Problem ist, dass, wenn set keine ist, IndexError immer noch von diesem Teil von django.db.models.query geworfen wird:

%Vor%

Wie kann man verhindern, dass das System diesen Fehler auslöst und mit dem nächsten Element in der for-Schleife fortfährt?

    
moutone 02.03.2011, 11:34
quelle

1 Antwort

14

In jedem Fall gibt es zwei Fehler in Ihrem Code:

  1. set ist ein builtin (wie Sie an der Syntaxhervorhebung von SO sehen können). Wenn Sie also Ihrer Variablen den Namen geben, verschatten Sie das eingebaute Objekt für keinen Zweck, was zumindest eine schlechte Übung ist und später Probleme verursachen könnte Code.
  2. Der kanonische Weg, um zu überprüfen, ob set nicht None ist, ist schreiben: wenn set ist nicht None

Besser noch, der kanonische Weg, um dieses Code-Snippet zu schreiben, ist:

%Vor%

(Ersetze natürlich Fehler für die tatsächliche Ausnahme)

Auf diese Weise müssen Sie an diesem Punkt noch nicht einmal 'set' setzen.

    
Don Joe 19.03.2011 17:23
quelle

Tags und Links