У мене є скрипт інструменту 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, він працює так, як я очікував, виходячи витончено без повідомлення про помилку; однак у моєму аркпійному сценарії з цією ж структурою сценарій виходить, але повідомлення про помилку SystemExit розміщується у вікні результатів інструменту. Чи є спосіб змусити скрипт інструменту arcpy з'їсти виняток і поховати повідомлення про помилку SystemExit?