Try-Catch в диаграммах
Элемент доступен в Студиях версий 1.25.3+
Элемент предназначен для структурированной обработки ошибок и исключений внутри диаграммы процессов. Он позволяет создать отдельные ветви выполнения для штатного сценария (Try) и для обработки различных типов ошибок (Catch), что делает процессы более устойчивыми и управляемыми.
Использование Try-Catch полезно в следующих сценариях:
- Когда необходимо гарантировать выполнение критически важных шагов процесса, даже если некоторые из них завершатся ошибкой.
- Для реализации сложной логики обработки разных типов ошибок (например, ошибка сети, ошибка элемента интерфейса, ошибка логики).
- Для замены глобальной настройки «Продолжать при ошибке» на более точное и контролируемое поведение.
- Для сбора детальной информации об ошибке (сообщение, скриншот, стек вызовов) для последующего анализа.
Свойства
Символ *
указывает на обязательность заполнения свойства. Описание общих свойств см. здесь.
Вывод:
- Исключение [LTools.Common.Model.ExecutionExceptionInfo] — переменная для сохранения данных о перехваченном исключении. В этой переменной доступна вся информация об ошибке: сообщение, тип, стек вызовов.
- Скриншот исключения [Boolean] — если свойство включено (
True
), система автоматически создаст скриншот в момент возникновения исключения.
Принцип работы
- Блок Try: В эту ветвь помещаются элементы, выполнение которых может привести к ошибке.
- Блоки Catch: Это ветви для обработки ошибок. Элемент позволяет создавать несколько таких блоков для перехвата разных типов исключений.
- Выполнение: Система пытается выполнить последовательность в блоке
Try
. - Обработка результата:
- Если ошибок нет: Выполнение продолжается по стандартной исходящей связи после всего элемента Try-Catch.
- Если произошла ошибка: Выполнение немедленно прерывается, и система переходит в соответствующий блок
Catch
, тип исключения в котором соответствует возникшей ошибке.
- Данные об ошибке: Внутри блока
Catch
доступна переменная, указанная в свойстве Исключение, содержащая все детали ошибки. На основе этих данных можно, например, записать различную информацию в журнал.
Пример обработки
- Исключение (по умолчанию): Перехватывает любую ошибку, если она не была обработана в более конкретном блоке Catch. Эквивалентно конструкции
catch (Exception)
в C#. - Сообщение “Ошибка”: Блок, настроенный на перехват конкретного типа ошибки. Эквивалентно конструкции
catch (SpecificExceptionType)
.
По умолчанию необработанная ошибка приводит к аварийному завершению элемента. Блок Try-Catch был добавлен, в том числе, для обеспечения обратной совместимости, чтобы старые процессы, рассчитанные на такое поведение, продолжали работать.
Пример использования
RPA-проект, демонстрирующий работу элемента, можно найти в нашем публичном репозитории Learning .
- Скачайте архив со всеми обучающими материалами по ссылке: Скачать архив Learning .
- Распакуйте архив и откройте в Студии проект StudioActivities.
- Выберите процесс
StudioActivities/Ru/Диаграмма
для просмотра.