ArcGIS 10.0 için iki büyük fonksiyonel bölümü olan bir arcpy aracı komut dosyası var. Kullanıcı ikinci bölümün çalıştırılıp çalıştırılmayacağını seçebilir. Kullanıcı ikinci bölümü çalıştırmak DEĞİL seçerse, ben sadece bir temizleme işlevini çalıştırmak ve araç sonuçları penceresine bir hata iletisi gönderilmeden bir sys.exit (0) ile komut dosyasından çıkmak istiyorum . Burada CBS-SE'de arcpy betiklerinden çıkma konusunda iki ana konu vardır, ancak buradaki çözümler özellikle hata mesajına değinmemektedir. Kodun genel yapısı aşağıdaki gibidir:
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()
Bu kodu ArcGIS / arcpy dışında Python yorumlayıcıda çalıştırırsam, beklediğim gibi çalışır, hata iletisi olmadan incelikle çıkar; ancak, aynı yapıya sahip arkpy komut dosyasında komut dosyası çıkar, ancak araç sonuçları penceresine bir SystemExit hata iletisi gönderilir. Arcpy aracı komut dosyasının özel durumu yemesi ve SystemExit hata iletisini gömmesinin bir yolu var mı?