了解地理处理工具错误和警告
地理处理错误和警告由地理处理工具返回,形式为一个六位数代码和一条文本消息。每个错误和警告在桌面帮助系统中都有对应的描述页面。该页面包含详细的错误描述以及针对该错误的可能解决方案。在工具对话框、Python 窗口以及结果窗口中,ID 代码是一个链接,用户单击它后会进入描述页面。
内部错误和历史日志文件
工具出现错误时,将显示标准错误代码和消息。某些情况下,伴随标准错误代码的可能还有内部系统错误。这些内部系统错误通常并不作为标准错误消息的一部分提供,因为它们往往对了解问题的帮助极小。但在某些情况下,这些消息可以为诊断错误原因和更正错误提供额外的线索。
要查看任何内部系统错误,必须先启用消息记录。单击地理处理 > 地理处理选项,然后选中将地理处理操作记录到日志文件中。要详细了解如何激活和读取日志文件,请参阅历史日志文件。
使用脚本和脚本工具编写标准错误和警告
通过 Python,可使用 AddWarning 和 AddError 函数编写自己的自定义错误和警告消息。但也可以使用 AddIDMessage 函数编写任何标准错误或警告消息。通过编写标准错误和警告,您就不再需要提供自己的文档 - 脚本用户可以阅读在桌面帮助中找到的错误描述和解决方案。
要编写标准错误或警告消息,必须先知道六位数代码。这就需要您执行一些探究工作;您必须搜索在桌面帮助中找到的描述以找出正确的六位数代码。在确定相应的代码之后,请对需要包含在消息中的附加信息做出注释,通常表示为 <value>。例如,代码 12 表示“<value> already exists.”。在这种情况下,需要向 AddIDMessage() 的 {add_argument1} 参数提供一个值(即数据集名称)。
下面的 Python 示例可检查是否已提供一个要素类作为输入值;如果尚未提供,则使用 AddIDMessage() 返回代码 12 (000012:<value> 已存在)。可选参数用于将要素类名称代入到消息中。
class overwriteError(Exception):
pass
import arcpy
import sys
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))