ArcGIS 10.0用のarcpyツールスクリプトには、2つの主要な機能セクションがあります。ユーザーは、2番目のセクションを実行するかどうかを選択できます。ユーザーが2番目のセクションを実行しないことを選択した場合、ツール結果ウィンドウにエラーメッセージを表示せずに、クリーンアップ関数を実行してsys.exit(0)でスクリプトを終了するだけです。 GIS-SEにはarcpyスクリプトの終了に関する2つの主要なスレッドがありますが、そのソリューションはエラーメッセージを具体的に扱っていません。コードの一般的な構造は次のとおりです。
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()
このコードをArcGIS / arcpyの外部のPythonインタープリターで実行すると、期待どおりに動作し、エラーメッセージなしで正常に終了します。ただし、この同じ構造のarcpyスクリプトでは、スクリプトは終了しますが、SystemExitエラーメッセージがツールの結果ウィンドウに表示されます。arcpyツールスクリプトに例外を食べさせ、SystemExitエラーメッセージを埋める方法はありますか?