Funktioniert das?
%Vor% Wenn nämlich die erste Zeile ein ValidationError
wirft, fängt das zweite except
es?
Ich hätte es unverschachtelt geschrieben, aber die zweite Filteranweisung kann auch fehlschlagen! Und ich möchte den gleichen ValidationError
Block verwenden, um das auch zu fangen.
Ich würde es selbst testen, aber dieser Code ist jetzt so verwoben, dass es schwierig ist, ihn richtig auszulösen:)
Als eine Randnotiz ist es schlecht, sich darauf zu verlassen, dass die TypeError
abgefangen und stattdessen nur ein arg übergeben wird? d. h. bestimmte Argumente bewusst weggelassen werden, wo sie nicht benötigt werden?
Wenn die Filteranweisung im inneren Versuch eine Ausnahme auslöst, wird sie zuerst mit der inneren Menge von "except" -Anweisungen abgeglichen und dann, wenn keine davon sie abfängt, wird sie mit der äußeren Menge von "except" verglichen. Aussagen.
Sie können sich selbst überzeugen, dass dies der Fall ist, indem Sie einfach so etwas tun (es wird nur "Wertfehler gefangen") angezeigt:
%Vor%Als ein anderes Beispiel sollte dieser nur "Gefangen den inneren Wertfehler" drucken:
%Vor%Tags und Links python