RPA | BluePrism |堆栈不平衡

时间:2018-01-12 16:02:55

标签: blueprism

我在步进过程中遇到一个异常,我点击了Ok并将下一个阶段设置为之前执行的阶段。在这种情况下,blueprism主要给出以下错误:

"内部:堆栈不平衡已达到"

为什么我收到此错误?

请帮忙。

5 个答案:

答案 0 :(得分:5)

如果出现以下情况,可能会在Blue Prism中发生堆栈不平衡错误:

  • 你在调试模式中跳得太快(在当前阶段结束之前跳过)
  • 进程或业务对象处于异常模式,并抛出新的异常(例如,如果Action阶段在Recover阶段之后但在Resume阶段之前抛出异常)。

要从Stack Imbalance错误中恢复,您可以:

  • 重置
  • 或者只是运行Resume阶段并继续调试

答案 1 :(得分:2)

在调试模式下,向前移动过快会导致堆栈不平衡。我无法确切知道它是如何工作的,但我怀疑其行为如下:

当您按F10(跳过)时,您将执行该过程,系统会将返回地址推送到堆栈。如果你在退出第一个进程之前再次按F10,你将把新东西推到堆栈上,现在你已经在堆栈上创建了一个imballance,当第一个进程试图从堆栈中弹出时,返回地址将是false。

要了解有关堆栈的更多信息,请参阅wiki链接:Wiki Call Stack

答案 2 :(得分:0)

很可能您没有通过将异常通过 恢复 恢复 。如果异常中断,则必须通过 恢复 恢复 进行解决,否则它将抛出堆栈失衡错误

答案 3 :(得分:0)

几个月前,我开始从事BluePrism的开发工作,相信我很多时候都遇到了这个错误。根据我所注意到的,此错误发生在调试模式下。那就是当您通过“单步执行”来运行代码时。

如果您已经运行了Stage,并且在当前Stage仍在运行时介入,则会收到此错误。

要使代码重新运行,可以尝试以下操作:

  1. 重置页面
  2. 完全重置过程/对象
  3. 如果在运行从另一个页面调用的页面时遇到此错误。然后-从被调用的位置再次以调试模式运行该页面。在这种情况下,您不必重置代码。

答案 4 :(得分:-1)

我认为你必须击中RESET按钮。