У меня есть скрипт инструмента arcpy для ArcGIS 10.0, который имеет два основных функциональных раздела. Пользователь может выбрать, следует ли запускать второй раздел. Если пользователь выбирает НЕ запускать второй раздел, я просто хочу запустить функцию очистки и выйти из сценария с помощью sys.exit (0), не отправляя сообщение об ошибке в окно результатов инструмента. Здесь, в GIS-SE, есть два основных потока о выходе из скриптов arcpy, но решения в них специально не обращаются к сообщению об ошибке. Общая структура кода выглядит следующим образом:
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()
Если я запускаю этот код в интерпретаторе Python за пределами ArcGIS / arcpy, он работает, как и ожидалось, изящно завершается без сообщения об ошибке; однако в моем скрипте arcpy с такой же структурой скрипт завершается, но сообщение об ошибке SystemExit отправляется в окно результатов инструмента. Есть ли способ заставить скрипт инструмента arcpy съесть исключение и скрыть сообщение об ошибке SystemExit?