Tôi có một tập lệnh công cụ Arcpy cho ArcGIS 10.0 có hai phần chức năng chính. Người dùng có thể chọn có chạy phần thứ hai hay không. Nếu người dùng chọn KHÔNG chạy phần thứ hai, tôi chỉ muốn chạy chức năng dọn dẹp và thoát tập lệnh với sys.exit (0) mà không có thông báo lỗi được đăng lên cửa sổ kết quả công cụ. Có hai luồng chính ở đây trong GIS-SE về việc thoát các tập lệnh arcpy, nhưng các giải pháp trong đó không giải quyết cụ thể thông báo lỗi. Cấu trúc chung của mã như sau:
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()
Nếu tôi chạy mã này trong trình thông dịch Python bên ngoài ArcGIS / arcpy, nó hoạt động như tôi mong đợi, thoát ra một cách duyên dáng mà không có thông báo lỗi; tuy nhiên, trong tập lệnh phức tạp của tôi có cùng cấu trúc này, tập lệnh thoát, nhưng thông báo lỗi SystemExit được đăng lên cửa sổ kết quả của công cụ. Có cách nào để làm cho tập lệnh công cụ arcpy ăn ngoại lệ và chôn thông báo lỗi SystemExit không?