Ich habe ein Python-Skript für ArcGIS, an dem ich arbeite, und ich möchte die Möglichkeit haben, das Skript zu beenden, wenn nicht die erforderlichen Daten verfügbar sind. Ich habe versucht, sys.exit () direkt nach oben zu bringen, aber das würde eine Ausnahme in ArcMap ergeben, die ich vermeiden möchte. Ich habe diesen Thread gefunden , der die Verwendung eines try-Blocks vorschlägt, also habe ich diese Funktion erstellt:
def quit_script(message):
log_msg(message) # already defined; writes a message to a file
if log_loc:
output.close() # close the file used with log_msg()
try:
sys.exit()
except SystemExit:
pass
Das hat leider auch nicht funktioniert. Nun, es macht diesen Fehler in ArcMap nicht mehr, aber es wird auch nicht beendet. Im Moment habe ich den Großteil meines Codes in einer if / else-Anweisung, aber das ist hässlich. Hat jemand andere Vorschläge?
Vielen Dank! Brian
arcgis-10.0
python
Brian Buell
quelle
quelle
Antworten:
Nein, der Try / Except-Block, den Sie möchten, hat den 'catch', der Ihren Exit-Anruf erhält. Bei Ihrem Versuch würden Sie also Folgendes tun:
Dies wird abgelegt, wenn Ihre 'if'-Anweisung fehlschlägt.
quelle