Skip to Content

Try-Catch в диаграммах

Элемент доступен в Студиях версий 1.25.3+

Элемент предназначен для структурированной обработки ошибок и исключений внутри диаграммы процессов. Он позволяет создать отдельные ветви выполнения для штатного сценария (Try) и для обработки различных типов ошибок (Catch), что делает процессы более устойчивыми и управляемыми.

Использование Try-Catch полезно в следующих сценариях:

  • Когда необходимо гарантировать выполнение критически важных шагов процесса, даже если некоторые из них завершатся ошибкой.
  • Для реализации сложной логики обработки разных типов ошибок (например, ошибка сети, ошибка элемента интерфейса, ошибка логики).
  • Для замены глобальной настройки «Продолжать при ошибке» на более точное и контролируемое поведение.
  • Для сбора детальной информации об ошибке (сообщение, скриншот, стек вызовов) для последующего анализа.

Свойства

Символ * указывает на обязательность заполнения свойства. Описание общих свойств см. здесь.

Вывод:

  • Исключение [LTools.Common.Model.ExecutionExceptionInfo] — переменная для сохранения данных о перехваченном исключении. В этой переменной доступна вся информация об ошибке: сообщение, тип, стек вызовов.
  • Скриншот исключения [Boolean] — если свойство включено (True), система автоматически создаст скриншот в момент возникновения исключения.

Принцип работы

  1. Блок Try: В эту ветвь помещаются элементы, выполнение которых может привести к ошибке.
  2. Блоки Catch: Это ветви для обработки ошибок. Элемент позволяет создавать несколько таких блоков для перехвата разных типов исключений.
  3. Выполнение: Система пытается выполнить последовательность в блоке Try.
  4. Обработка результата:
    • Если ошибок нет: Выполнение продолжается по стандартной исходящей связи после всего элемента Try-Catch.
    • Если произошла ошибка: Выполнение немедленно прерывается, и система переходит в соответствующий блок Catch, тип исключения в котором соответствует возникшей ошибке.
  5. Данные об ошибке: Внутри блока Catch доступна переменная, указанная в свойстве Исключение, содержащая все детали ошибки. На основе этих данных можно, например, записать различную информацию в журнал.

Пример обработки

  • Исключение (по умолчанию): Перехватывает любую ошибку, если она не была обработана в более конкретном блоке Catch. Эквивалентно конструкции catch (Exception) в C#.
  • Сообщение “Ошибка”: Блок, настроенный на перехват конкретного типа ошибки. Эквивалентно конструкции catch (SpecificExceptionType).

По умолчанию необработанная ошибка приводит к аварийному завершению элемента. Блок Try-Catch был добавлен, в том числе, для обеспечения обратной совместимости, чтобы старые процессы, рассчитанные на такое поведение, продолжали работать.

Пример использования

RPA-проект, демонстрирующий работу элемента, можно найти в нашем публичном репозитории Learning.

  1. Скачайте архив со всеми обучающими материалами по ссылке: Скачать архив Learning.
  2. Распакуйте архив и откройте в Студии проект StudioActivities.
  3. Выберите процесс StudioActivities/Ru/Диаграмма для просмотра.