Ho uno script arcpy per ArcGIS 10.0 che ha due sezioni funzionali principali. L'utente può scegliere se eseguire o meno la seconda sezione. Se l'utente sceglie di NON eseguire la seconda sezione, desidero semplicemente eseguire una funzione di pulizia ed uscire dallo script con un sys.exit (0) senza avere un messaggio di errore pubblicato nella finestra dei risultati dello strumento. Ci sono due thread principali qui in GIS-SE sull'uscita da script arcpy, ma le soluzioni in esso non affrontano in modo specifico il messaggio di errore. La struttura generale del codice è la seguente:
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()
Se eseguo questo codice nell'interprete Python al di fuori di ArcGIS / arcpy, funziona come mi aspettavo, uscendo con grazia senza alcun messaggio di errore; tuttavia, nel mio script arcpy con questa stessa struttura, lo script viene chiuso, ma un messaggio di errore SystemExit viene pubblicato nella finestra dei risultati dello strumento. C'è un modo per fare in modo che lo script dello strumento arcpy mangi l'eccezione e seppellisca il messaggio di errore di SystemExit?