Betrachten Sie diese zwei Schnipsel:SyntaxError Inkonsistenz in Python?
try:
a+a=a
except SyntaxError:
print "first exception caught"
.
Im zweiten Fall wird die Anweisung "zweite Ausnahme .." gedruckt (Ausnahme abgefangen), während die erste nicht ist.
Ist die erste Ausnahme (nennen wir es "SyntaxError1") eine andere als die zweite ("SyntaxError2")?
Gibt es eine Möglichkeit, SyntaxError1 abzufangen (wodurch Kompilierungszeitfehler unterdrückt werden)? Wrapping große Blöcke von Code in eval
ist unbefriedigend;)
Fehler bei der Kompilierungszeit unterdrücken ???? Was kann das bedeuten? Können Sie eine Definition für den Anwendungsfall bereitstellen, in dem nicht analysierbarer Code analysiert werden soll? Was soll passieren? Wie schlimm kann der Code sein und dennoch "geparst" werden? Worüber redest du? –
Die Frage konzentrierte sich hauptsächlich auf mögliche Inkonsistenz von SyntaxErrors, die in verschiedenen Situationen geworfen wurden. Alex erklärte, dass es überhaupt keine Inkonsistenz gibt und dass das beschriebene Verhalten in den Mechanismen des Compilers zum Aufbau einer übergeordneten Struktur von try/except besteht. Ein wahrscheinlicher Anwendungsfall könnte das Hochladen durch eine vertrauenswürdige Entwickler * .py-Datei mit einigen Funktionen (einfaches Plugin-System?) Sein, mit der Notwendigkeit, die Syntax direkt nach dem Hochladen zu validieren. – gorsky