При запуске инструмента, ArcPy определяет приложение, из которого он был вызван. Это позволяет писать сообщения в Python. Эти сообщения автоматически отображаются в диалоговом окне инструмента, в Истории геообработки и в окне Python. Это также означает, что любая модель или инструмент-скрипт, вызывающие ваш инструмент-скрипт, получают доступ к созданным вами сообщениям.
Более подробно о сообщениях см. Основы сообщений в инструментах-скриптах.
После выполнения инструмента сообщения можно получать с помощью функций геообработки. Есть следующие четыре функции ArcPy, предназначенные для записи сообщений:
| Функция | Описание | 
|---|---|
К сообщению инструмента добавляется информационное сообщение.  | |
К сообщению инструмента добавляется предупреждение.  | |
К сообщению инструмента добавляется сообщение об ошибке.  | |
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