Краткая информация
Класс SeverityLevel управляет тем, как инструменты геобработки вызывают исключения.
Обсуждение
Класс SeverityLevel может использоваться в качестве декоратора функций или как контекстной программы для управления в блоке with. Если класс SeverityLevel не используется или используется значение параметра severity_level 2, инструменты будут вызывать исключение только в том случае, если у инструмента возникнет ошибка. Чтобы управлять тем, как инструменты геообработки вызывают исключения для всего скрипта, используйте функцию SetSeverityLevel.
Синтаксис
SeverityLevel (severity_level)
| Параметр | Описание | Тип данных |
severity_level |
Specifies the severity level.
(Значение по умолчанию — 2) | Integer |
Пример кода
Используйте класс SeverityLevel в качестве контекстной программы для управления, чтобы вызывать исключение при обнаружении предупреждения инструмента.
import arcpy
fc1 = 'c:/resources/resources.gdb/boundary'
fc2 = 'c:/resources/resources.gdb/boundary2'
with arcpy.SeverityLevel(1):
print(f"Severity is set to : {arcpy.GetSeverityLevel()}")
try:
# FeatureCompare returns warning messages when a miscompare is
# found. This normally would not cause an exception; however, by
# setting the severity level to 1, all tool warnings will also
# return an exception.
arcpy.management.FeatureCompare(fc1, fc2, "OBJECTID")
except arcpy.ExecuteWarning:
print(f"Warning: {arcpy.GetMessages(1)}")
except arcpy.ExecuteError:
print(f"Error: {arcpy.GetMessages(1)}")Используйте класс SeverityLevel в качестве декоратора функции, чтобы вызывать исключение при обнаружении предупреждения инструмента.
import arcpy
fc1 = 'c:/resources/resources.gdb/boundary'
fc2 = 'c:/resources/resources.gdb/boundary2'
@arcpy.SeverityLevel(1)
def myFunc(fc1, fc2):
print(f"Severity is set to : {arcpy.GetSeverityLevel()}")
try:
# FeatureCompare returns warning messages when a miscompare is
# found. This normally would not cause an exception; however, by
# setting the severity level to 1, all tool warnings will also
# return an exception.
arcpy.management.FeatureCompare(fc1, fc2, "OBJECTID")
except arcpy.ExecuteWarning:
print(f"Warning: {arcpy.GetMessages(1)}")
except arcpy.ExecuteError:
print(f"Error: ", arcpy.GetMessages(2))
myFunc(fc1, fc2)