Saya memiliki skrip alat arcpy untuk ArcGIS 10.0 yang memiliki dua bagian fungsional utama. Pengguna dapat memilih untuk menjalankan bagian kedua atau tidak. Jika pengguna memilih TIDAK untuk menjalankan bagian kedua, saya hanya ingin menjalankan fungsi pembersihan dan keluar dari skrip dengan sys.exit (0) tanpa memiliki pesan kesalahan yang diposting ke jendela hasil alat. Ada dua utas utama di sini di GIS-SE tentang keluar dari skrip arcpy, tetapi solusi di dalamnya tidak secara khusus menangani pesan kesalahan. Struktur umum kode adalah sebagai berikut:
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()
Jika saya menjalankan kode ini di interpreter Python di luar ArcGIS / arcpy, itu berfungsi seperti yang saya harapkan, keluar dengan anggun tanpa pesan kesalahan; Namun, dalam skrip arcpy saya dengan struktur yang sama ini, skrip keluar, tetapi pesan kesalahan SystemExit diposting ke jendela hasil alat. Apakah ada cara untuk membuat skrip alat arcpy memakan pengecualian dan mengubur pesan kesalahan SystemExit?