运行工具时,ArcPy 完全知晓调用它的应用程序。其中一个主要作用是您可以在 Python 中写入消息,并且您的消息会自动出现在进度对话框、结果 窗口中的工具结果和 Python 窗口中。而且调用您工具的任何模型或脚本工具均有权访问您所写入的消息。
要了解有关消息的详细信息,请参阅了解脚本工具中的消息。
在执行工具期间,系统会写入可使用地理处理函数进行检索的消息。用于写入消息的四个 ArcPy 函数如下所示:
- AddMessage(message) - 用于一般信息性消息(严重性 = 0)
- AddWarning(message) - 用于警告消息(严重性 = 1)
- AddError(message) - 用于错误消息(严重性 = 2)
- AddIDMessage(message_type, message_ID, add_argument1, add_argument2) - 用于错误和警告(由 message_type 参数确定严重性。)
调用 AddIDMessage() 会显示一条简短消息和该消息的 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