J'ai un script d'outil arcpy pour ArcGIS 10.0 qui a deux sections fonctionnelles principales. L'utilisateur peut choisir d'exécuter ou non la deuxième section. Si l'utilisateur choisit de NE PAS exécuter la deuxième section, je veux simplement exécuter une fonction de nettoyage et quitter le script avec un sys.exit (0) sans avoir un message d'erreur publié dans la fenêtre des résultats de l'outil. Il existe deux fils principaux ici dans GIS-SE sur la sortie des scripts arcpy, mais les solutions qui y figurent ne traitent pas spécifiquement le message d'erreur. La structure générale du code est la suivante:
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()
Si j'exécute ce code dans l'interpréteur Python en dehors d'ArcGIS / arcpy, cela fonctionne comme je m'y attendais, en quittant avec élégance sans message d'erreur; cependant, dans mon script arcpy avec cette même structure, le script se ferme, mais un message d'erreur SystemExit est publié dans la fenêtre de résultats de l'outil. Existe-t-il un moyen de faire en sorte que le script de l'outil arcpy mange l'exception et enterre le message d'erreur SystemExit?