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

此 ArcGIS 2.8 文档已 存档,并且不再对其进行更新。 其中的内容和链接可能已过期。 请参阅最新文档

地理处理过程中错误和警告信息由地理处理工具返回,形式为一个六位数代码和一条文本消息。 每个错误和警告在桌面帮助系统中都具有对应的描述页面。 该页面包含详细的错误描述以及针对该错误的可行解决方案。 工具对话框、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))