Skip to main content

Сообщения инструмента-скрипта

При запуске инструмента, ArcPy определяет приложение, из которого он был вызван. Это позволяет писать сообщения в Python. Эти сообщения автоматически отображаются в диалоговом окне инструмента, в Истории геообработки и в окне Python. Это также означает, что любая модель или инструмент-скрипт, которые вызывают ваш инструмент, получают доступ к созданным вами сообщениям.

Более подробно о сообщениях см. Основы сообщений в инструментах-скриптах.

После выполнения инструмента сообщения можно получать с помощью функций геообработки. Есть следующие четыре функции ArcPy, предназначенные для записи сообщений:

Функция

Описание

AddMessage(message)

К сообщению инструмента добавляется информационное сообщение.

AddWarning(message)

К сообщению инструмента добавляется предупреждение.

AddError(message)

К сообщению инструмента добавляется сообщение об ошибке.

AddIDMessage(message_type, message_ID, add_argument1=None, add_argument2=None)

Сообщение любого типа добавляется с использованием кодов сообщений геообработки.

При вызове функции 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.management.GetCount(input)[0]) == 0:
 arcpy.AddError("{0} has no features.".format(input))
 raise arcpy.ExecuteError