Eu tenho um script de ferramenta arcpy para ArcGIS 10.0 que possui duas seções funcionais principais. O usuário pode optar por executar ou não a segunda seção. Se o usuário optar por NÃO executar a segunda seção, simplesmente desejo executar uma função de limpeza e sair do script com um sys.exit (0) sem ter uma mensagem de erro postada na janela de resultados da ferramenta. Existem dois tópicos principais aqui no GIS-SE sobre a saída de scripts arcpy, mas as soluções contidas nele não tratam especificamente da mensagem de erro. A estrutura geral do código é a seguinte:
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 eu executar esse código no interpretador Python fora do ArcGIS / arcpy, ele funcionará como seria de esperar, saindo normalmente sem nenhuma mensagem de erro; no entanto, no meu script arcpy com essa mesma estrutura, o script é encerrado, mas uma mensagem de erro SystemExit é postada na janela de resultados da ferramenta. Existe uma maneira de fazer com que o script da ferramenta arcpy coma a exceção e oculte a mensagem de erro SystemExit?