Drools Exceptions LHS,确定失败的规则

时间:2017-01-24 14:49:40

标签: java drools jbpm rules

在任何人离开之前,关于这一点的深层次已被覆盖,但并不完全。 1,我们正在使用Drools 6.5。接下来,我负责运行引擎的框架,而不是规则。 3我要求实时报告失败的规则。 RHS不是问题,有这个问题。 LHS是问题,NPE,除零等等。

显然,任何和所有异常都会被捕获并相应地处理。据我所知,没有足够的信息来确定失败的规则。我已经尝试注入一个全局并将其设置为第一个stmt,但似乎不会从LHS工作内存复制到应用程序内存。

我可以利用规则制定者的一些要求......有限。我可以在运行时注入stmts(当我加载规则时),但我不愿意。

工作项目多种多样且不可靠。处理速度必须非常快。规则将是数百到数千,并且可能近实时更新,或者可能是动态更好的描述。

在LHS评估之前是否有可用的监听器? (我会怀疑它,但我想我最好问)。

ErrorListener会很好,我尝试了后果异常处理程序但是没有用。我错过了另一个ErrorHandler吗?

我认为JBPM引擎具有相同的约束,是这种情况吗?这也需要在框架中运行。

由于

1 个答案:

答案 0 :(得分:0)

约束不在规则的上下文中进行评估,它们在网络环境中进行评估。

如果你不给规则制定者一根绳子,他们就无法自拔。如果你不给它们运行NPE或除以零的Java类,他们就不能在约束表达式中做到这一点。 (好吧,他们仍然可以明确地写一个除数为零的表达式,但那是什么。)

如果您在插入调用周围编写处理程序,则抓取LHS端异常的可能性很小。但是你不知道哪条规则。 (如果你知道怎么办?打电话给海军陆战队?)

使用不经测试的规则就像使用任何其他SW而不进行测试。