ツールを実行するときに、ArcPy は呼び出し元のアプリケーションを完全に認識しています。この結果、Python を使用してメッセージを書き込むと、メッセージが進捗ダイアログ ボックス、[結果] ウィンドウでのツールの結果、および [Python] ウィンドウに自動的に表示されます。したがって、ツールを呼び出したモデルまたはスクリプト ツールも、書き出されたメッセージにアクセスすることができます。
メッセージの詳細については、「スクリプト ツールのメッセージの概要」をご参照ください。
ツールの実行中に書き込まれるメッセージは、ジオプロセシング関数を使用して取得することができます。メッセージを書き込むための ArcPy 関数には、次の 4 つがあります。
- AddMessage(message) - 一般情報メッセージ用 (重要度 = 0)
- AddWarning(message) - 警告メッセージ用 (重要度 = 1)
- AddError(message) - エラー メッセージ用 (重要度 = 2)
- AddIDMessage(message_type, message_ID, add_argument1, add_argument2) - エラーと警告用 (message_type 引数で重要度を決定)
AddIDMessage() を呼び出すと、短いメッセージとメッセージ ID が表示されます。メッセージ ID は、問題の原因と解決策の説明へのリンクです。AddError() または AddIDMessage() を使用してエラー メッセージを追加する場合、処理は次のようになります。
- スクリプトは、実行し続けます。適切なエラー処理ロジックを追加したり、スクリプトの実行を停止したりするのは、作成者です。たとえば、中間ファイルやカーソルの削除が必要な場合があります。
- スクリプトが終了したら、呼び出したスクリプトまたはモデルはシステム エラーを受信し、実行が停止されます。
メッセージの追加の例
以下の例では、入力が評価され、入力フィーチャが含まれていない場合はツールにエラー メッセージが追加され、ツールを終了するために arcpy.ExecuteError 例外が発生します。
import arcpy
input = arcpy.GetParameterAsText(0)
output = arcpy.GetParameterAsText(0)
# If the input has no features, add an error message, and raise
# an arcpy.ExecuteError
if int(arcpy.GetCount_management(input)[0]) == 0:
arcpy.AddError("{0} has no features.".format(input))
raise arcpy.ExecuteError