Mam skrypt narzędzia Arcpy dla ArcGIS 10.0, który ma dwie główne sekcje funkcjonalne. Użytkownik może wybrać, czy uruchomić drugą sekcję. Jeśli użytkownik zdecyduje się NIE uruchamiać drugiej sekcji, chcę po prostu uruchomić funkcję czyszczenia i wyjść ze skryptu za pomocą sys.exit (0) bez wyświetlania komunikatu o błędzie w oknie wyników narzędzia. Istnieją dwa główne wątki w GIS-SE dotyczące wychodzenia ze skryptów arcpy, ale rozwiązania w nich zawarte nie uwzględniają komunikatu o błędzie. Ogólna struktura kodu jest następująca:
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()
Jeśli uruchomię ten kod w interpretera Pythona poza ArcGIS / arcpy, działa on tak, jakbym się spodziewał, wychodząc z gracją bez żadnego komunikatu o błędzie; jednak w moim skrypcie o tej samej strukturze skrypt kończy działanie, ale komunikat o błędzie SystemExit jest wysyłany do okna wyników narzędzia. Czy istnieje sposób, aby skrypt narzędzia Arcpy zjadł wyjątek i zakopał komunikat o błędzie SystemExit?