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

При запуске инструмента, 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.GetCount_management(input)[0]) == 0:
    arcpy.AddError("{0} has no features.".format(input))
    raise arcpy.ExecuteError

Связанные разделы