Geschachtelte Ausnahmen?

Wird das funktionieren?

try:
    try:
        field.value = filter(field.value, fields=self.fields, form=self, field=field)
    except TypeError:
        field.value = filter(field.value)
except ValidationError, e:
    field.errors += e.args
    field.value = revert
    valid = False
    break              

Nämlich dann, wenn die erste Zeile löst ein ValidationError, wird die zweite except fangen?

Ich würde geschrieben haben es un-verschachtelte, aber die zweite filter-Anweisung kann scheitern auch! Und ich will das gleiche ValidationError block zu fangen, dass, wie gut.

Ich würde es testen und mich, aber dieser code ist so verwoben jetzt ist es schwierig, die Reise es richtig 🙂

Als seitliche Anmerkung, ist es schlecht auf Sie verlassen, fangen die TypeError und Weitergabe nur in einer arg statt? d.h., absichtlich unterlassen, einige Argumente, die, wo Sie nicht benötigt werden?

  • Sie nicht haben, um zu testen, code-in-place. Es wäre ziemlich einfach zu erstellen Sie eine neue python-Skript, und stecken Sie nur in einer Ausnahme-raising-Linie, wo Sie wollen, um zu testen, ob das Verhalten.
  • Du hast Recht... ich denke, es war einfacher, auf der Bühne das experiment, als ich dachte.
InformationsquelleAutor mpen | 2010-07-08
Schreibe einen Kommentar