ジオプロセシング ツールのエラーと警告

ジオプロセシング エラーと警告は、6 桁のコードとテキストによるメッセージで、ジオプロセシング ツールから返されます。 各エラーおよび警告には、対応するデスクトップ ヘルプ システムの説明ページが含まれています。 このページには、エラーの詳細な説明と考えられるエラーの解決策が記述されています。 ツールのダイアログ ボックス、Python ウィンドウ、および [結果] ウィンドウにある ID コードはリンクになっており、このリンクをクリックすると説明ページが表示されます。

内部エラーおよび履歴ログ ファイル

ツールでエラーが生成されると、標準エラー コードとメッセージが表示されます。 場合によっては、標準エラー コードに加えて内部システム エラーが生成されることがあります。 これらの内部システム エラーは、問題の理解に役立つ最小限の情報しか提供しないことが多いため、通常は標準エラー メッセージには含まれません。 ただし、一部のケースでは、これらのメッセージがエラーの原因を修正および解決するための手掛かりになる場合もあります。

内部システム エラーを表示するには、まずメッセージ ログを有効にする必要があります。 [プロジェクト] タブをクリックし、[オプション] パネルで [ジオプロセシング] をクリックしてから、[ジオプロセシング操作を XML ログ ファイルに書き込む] チェックボックスをオンにします。 ログ ファイルの有効化の詳細については、「ジオプロセシング操作を XML ログ ファイルに書き込む」をご参照ください。

スクリプトおよびスクリプト ツールでのエラーと警告の作成

Python では、AddWarning 関数と AddError 関数を使用して、ユーザー独自のカスタム エラーと警告を作成できます。 一方で、AddIDMessage 関数を使用して、標準エラーまたは警告メッセージをユーザーが作成することもできます。 標準エラーまたは警告を作成すれば、ドキュメントを別途用意する必要がなくなります。つまり、スクリプトのユーザーは、デスクトップ ヘルプに表示されるエラーの説明と解決策を読めば済みます。

標準エラーまたは警告を作成するには、最初に 6 桁のコードを知っておく必要があります。 そのためには、デスクトップ ヘルプの説明を調べて、適切な 6 桁のコードを確認する必要があります。 該当するコードを特定した後、メッセージに組み込む必要がある追加情報のメモを取っておきます。通常は、<value> のように示されています。 たとえば、コード 12 は「<値> はすでに存在します。」となります。 この場合は、AddIDMessage(){add_argument1} パラメーターに値 (つまり、データセットの名前) を指定する必要があります。

次に示す Python のサンプルは、フィーチャクラスが入力として指定されたかどうかを検査し、そうでない場合は AddIDMessage() を使用してコード 12 を返します (000012: <value> already exists)。 オプションの引数を使用して、パラメーターをフィーチャクラス名に置換し、メッセージに挿入しています。

class overwriteError(Exception):
    pass

import arcpy

inFeatureClass  = arcpy.GetParameterAsText(0)
outFeatureClass = arcpy.GetParameterAsText(1)

try:
    # If the output feature class already exists, raise an error
    if arcpy.Exists(inFeatureClass):
        raise overwriteError(outFeatureClass)
    else:
        # Additional processing steps

except overwriteError as e:
    # Use message ID 12, and provide the output feature class
    #    to complete the message.
    arcpy.AddIDMessage("Error", 12, str(e))