SeverityLevel

Краткая информация

Класс SeverityLevel управляет тем, как инструменты геобработки вызывают исключения.

Обсуждение

Класс SeverityLevel может использоваться в качестве декоратора функций или как контекстной программы для управления в блоке with. Если класс SeverityLevel не используется или используется значение параметра severity_level 2, инструменты будут вызывать исключение только в том случае, если у инструмента возникнет ошибка. Чтобы управлять тем, как инструменты геообработки вызывают исключения для всего скрипта, используйте функцию SetSeverityLevel.

Синтаксис

 SeverityLevel (severity_level)
ПараметрОписаниеТип данных
severity_level

Specifies the severity level.

  • 0A tool will not raise an exception, even if the tool produces an error or warning.
  • 1 If a tool produces a warning or an error, it will raise an exception.
  • 2 If a tool produces an error, it will raise an exception.

(Значение по умолчанию — 2)

Integer

Пример кода

SeverityLevel, пример 1

Используйте класс 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, пример 2

Используйте класс 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)