Ich habe ein ArcPy-Tool-Skript für ArcGIS 10.0, das zwei Hauptfunktionsabschnitte enthält. Der Benutzer kann wählen, ob der zweite Abschnitt ausgeführt werden soll oder nicht. Wenn der Benutzer den zweiten Abschnitt NICHT ausführt, möchte ich einfach eine Bereinigungsfunktion ausführen und das Skript mit einem sys.exit (0) beenden, ohne dass eine Fehlermeldung im Fenster mit den Werkzeugergebnissen angezeigt wird. In GIS-SE gibt es zwei wichtige Threads zum Beenden von Arcpy-Skripten, die darin enthaltenen Lösungen behandeln die Fehlermeldung jedoch nicht speziell. Die allgemeine Struktur des Codes lautet wie folgt:
import sys
##import arcpy
def CleanUp():
print 'Cleaning up ...\n'
def finish():
CleanUp()
print 'Exiting ...'
sys.exit(0)
do_more = False #or True ... input from user
#Section 1: do some stuff
print 'Doing some stuff ...\n'
if not do_more:
finish()
#Section 2: do more stuff
print 'doing more stuff ...'
CleanUp()
Wenn ich diesen Code im Python-Interpreter außerhalb von ArcGIS / arcpy ausführe, funktioniert er wie erwartet und wird ordnungsgemäß ohne Fehlermeldung beendet. In meinem Arcpy-Skript mit der gleichen Struktur wird das Skript jedoch beendet, es wird jedoch eine SystemExit-Fehlermeldung im Tool-Ergebnisfenster angezeigt. Gibt es eine Möglichkeit, das Skript des arcpy-Tools zu veranlassen, die Ausnahme aufzuheben und die SystemExit-Fehlermeldung zu begraben?