1

我在单步执行过程中遇到了一个异常,我单击“确定”并将下一阶段设置为先前执行的阶段。在这种情况下,blueprism 大多会给出以下错误:

“内部:已达到堆栈不平衡”

为什么我会收到此错误?

请帮忙。

4

6 回答 6

6

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

  • 您在调试模式下跨步太快(在当前阶段结束之前跨步)
  • 流程或业务对象处于异常模式并抛出新异常(例如,如果操作阶段在恢复阶段之后但在恢复阶段之前抛出异常)。

要从堆栈不平衡错误中恢复,您可以:

  • 重置
  • 或者只是运行一个 Resume 阶段并继续调试
于 2018-05-04T16:32:59.863 回答
2

堆栈不平衡是由于在调试模式下前进太快造成的。我无法确切知道它是如何工作的,但我怀疑行为如下:

当您按 F10(跳转)时,您将执行该过程,系统会将返回地址压入堆栈。如果您在退出第一个进程之前再次按 F10,您会将新内容压入堆栈,现在您已经在堆栈上创建了一个不平衡,并且当第一个进程尝试从堆栈中弹出时,返回地址将为 false。

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

于 2018-03-19T12:05:51.930 回答
1

当您处于恢复模式(已发生异常但尚未被恢复阶段清除)并手动设置为运行另一个阶段并且再次发生另一个异常时,将引发此错误。

于 2021-11-16T16:56:34.973 回答
0

几个月前我开始研究 BluePrism,相信我,我遇到过很多次这个错误。根据我所注意到的,此错误发生在调试模式下。那是当您通过“Stepping In”运行代码时。

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

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

  1. 重置页面
  2. 完全重置进程/对象
  3. 如果您在运行从另一个页面调用的页面时遇到此错误。然后 - 从调用页面的位置再次以调试模式运行页面。在这种情况下,您不必重置您的代码。
于 2020-07-18T13:20:06.603 回答
0

您很可能没有通过ResumeRecover传递异常来正确处理异常。如果异常中断,则必须通过RecoverResume才能解决,否则将抛出堆栈不平衡错误

于 2019-02-20T11:13:36.723 回答
-1

我认为您必须点击 RESET 按钮。

于 2018-01-15T06:25:44.837 回答