Краткая информация
Используйте сообщения системного ID с помощью инструмента-скрипта.
Обсуждение
Для инструментов-скриптов вы можете создавать свои собственные ошибки и предупреждения с помощью функций AddWarning и AddError. В качестве альтернативы вы также можете использовать любые стандартные сообщения об ошибках или предупреждениях с помощью функции AddIDMessage.
Однако, чтобы повторно использовать стандартную ошибку или предупреждение, вы должны сначала узнать шестизначный код. Это потребует некоторых исследований с вашей стороны; вам нужно будет выполнить поиск по описаниям в справке, чтобы найти правильный шестизначный код. После того, как вы определили соответствующий ID, обратите внимание на любую дополнительную информацию, которая должна быть включена в сообщение, обычно обозначается как <значение>.
Синтаксис
AddIDMessage (message_type, message_ID, {add_argument1}, {add_argument2})
Параметр | Описание | Тип данных |
message_type | Specifies the message severity.
| String |
message_ID | The message ID allows you to reference existing messages for your scripting errors and warnings. | Integer |
add_argument1 | Depending on which message ID is used, an argument may be necessary to complete the message. Common examples include dataset or field names. Data type can be string, integer, or double. | Object |
add_argument2 | Depending on which message ID is used, an argument may be necessary to complete the message. Common examples include dataset or field names. Data type can be string, integer, or double. | Object |
Пример кода
Добавьте сообщение в инструмент-скрипт Python. Приведенный ниже пример Python проверяет, существует ли указанный входной класс пространственных объектов, и если нет, то использует функцию AddIDMessage, чтобы вернуть ID код 12 (000012: <значение> уже существует). Дополнительный аргумент используется для подстановки имени класса пространственных объектов в текст сообщения.
class overwriteError(Exception):
pass
import arcpy
in_feature_class = arcpy.GetParameterAsText(0)
out_feature_class = arcpy.GetParameterAsText(1)
try:
# If the output feature class already exists, raise an error
if arcpy.Exists(in_feature_class):
# Raise a custom exception
raise overwriteError(out_feature_class)
else:
arcpy.CopyFeatures_management(in_feature_class, out_feature_class)
except overwriteError as err:
# Use message ID 12, and provide the output feature class
# to complete the message.
arcpy.AddIDMessage("Error", 12, str(err))