了解地理处理工具错误和警告

地理处理过程中错误和警告信息由地理处理工具返回,形式为一个六位数代码和一条文本消息。每个错误和警告在桌面帮助系统中都有对应的描述页面。该页面包含详细的错误描述以及针对该错误的可行解决方案。工具对话框、Python 窗口以及结果窗口中的 ID 代码是一个链接,用户单击该链接后会进入描述页面。

内部错误和历史日志文件

工具出现错误时,将显示标准错误代码和消息。某些情况下,伴随标准错误代码的可能还有内部系统错误。这些内部系统错误通常并不作为标准错误消息的一部分提供,因为它们往往对了解问题的帮助极小。但在某些情况下,这些消息可以为诊断错误原因和更正错误提供额外的线索。

要查看任何内部系统错误,必须先启用消息记录。单击工程选项卡,在选项面板中单击地理处理,然后选中将地理处理操作写入 XML 日志文件。有关激活日志文件的详细信息,请参阅将地理处理操作写入 XML 日志文件

使用脚本和脚本工具编写标准错误和警告

通过 Python,可使用 AddWarningAddError 函数编写自己的自定义错误和警告消息。但也可以使用 AddIDMessage 函数编写任何标准错误或警告消息。通过编写标准错误和警告,您就不再需要提供自己的文档 - 脚本用户可以阅读在桌面帮助中找到的错误描述和解决方案。

要编写标准错误或警告消息,必须先知道六位数代码。这就需要您执行一些探究工作;您必须搜索在桌面帮助中找到的描述以找出正确的六位数代码。在确定相应的代码之后,请对需要包含在消息中的附加信息做出注释,通常表示为 <value>。例如,代码 12 表示“<value> 已存在。” 在这种情况下,需要向 AddIDMessage(){add_argument1} 参数提供一个值(即数据集名称)。

下面的 Python 示例可检查是否已提供一个要素类作为输入值;如果尚未提供,则使用 AddIDMessage() 返回代码 12 (000012: <value> 已存在)。可选参数用于将要素类名称代入到消息中。

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))