如何在Azure逻辑应用程序中引发异常?

Joe*_*Eng 7 exception try-catch azure-logic-apps

是否可以在逻辑应用程序中引发异常?

具体来说,我试图在范围内抛出异常。然后在范围的运行中,我会检查它是否失败并检查它是否有错误。我尝试在范围内使用终止,但这会终止整个逻辑应用程序的运行。

Kam*_*ran 10

作为更新的解决方案,我们可以使用 Terminate 控件,Terminate 控件有 3 种状态:失败、取消和成功。

在此输入图像描述

  • 是的,听起来不错。请记住,这个家伙不能在循环中使用:( (2认同)

dre*_*mac 6

快速回答(TL;DR)

  • 问题:MSFT Azure 逻辑应用抛出异常
  • 解决方法:使用逻辑应用范围元素来模拟引发异常
    • 创建一个范围元素用作“try-catch”块
    • 使用无效命令强制作用域元素失败以模拟异常
    • 允许范围元素自然失败,这也将被视为异常

详细解答

语境

  • MSFT Azure 逻辑应用工作流程
  • 实时版本截至 2020-06-14

问题

  • 场景:开发人员希望在逻辑应用程序中引发异常或使用 try-catch 语义

解决方案

  • 截至撰写本文时,该产品的实时版本不支持此功能。有一个解决方法。

解决方法

  • 使用逻辑应用范围元素
  • 在范围元素内添加条件语句
  • 如果条件语句满足失败条件,则使用故意无效的命令强制异常
    • 例如,使用值创建一个变量赋值int('__ERROR__')
  • 如果条件语句不满足失败条件,则不执行任何操作
  • 逻辑应用的其余部分由两条路径组成
    • 第一条路径在范围元素成功时运行
    • 第二条路径在范围元素失败时运行(失败、跳过、超时)

例子

  • 创建一个范围元素作为“try-catch”块

使用范围元素来模拟抛出异常

  • 使用无效命令创建变量撰写元素无效的变量组合
    
    int('__ERROR__') ## 这将导致封闭范围失败
                      ## 字符串 __ERROR__ 无法转换为整数
  • 响应包含异常的 Scope 元素的退出状态响应封闭范围的退出状态

也可以看看

  • 我努力让它工作,直到我将 @ 添加到屏幕截图中的撰写代码中......“@int('__ERROR__')” (3认同)