2014-09-22 93 views
0

我在ilog工作,我有一个决策表,其中说我有5条规则。我有一些输入字段作为条件说名称和年龄(虚拟数据),并有一些相关的行动部分。当我将某些条件值的输入作为null传入时,会调用异常处理程序,其中处理了异常并返回false。但问题是,如果异常发生在第一行然后它应该抛出异常和程序应该直接达到最后的行动,但在我的情况下,所有5个规则被执行,我得到5个异常的值等于表中的行数。规则的异常处理

public boolean handleexception(IRLruntimeexception ex) 
{ 
    errorcode=ex.getmessage(); 
    return false; 
} 

我听到5次错误代码值是不正确

回答

0

这也许是因为RetePlus algorithm比赛的所有条件执行行动之前

试图改变自己的ruletask以连续的算法。

+0

非常感谢您的建议将会尽快尝试 – 2014-09-23 18:53:09

+0

更多指标 – 2014-09-23 18:53:32

+0

您能解释更多吗?你把你的exceptionHandler放在哪里?这是一个规则流处理程序或规则处理程序? – 2014-09-24 09:26:20

0

为每个规则调用异常处理程序,因为决策表中的每一行实际上都是独立规则。每个规则的条件将针对所提供的数据进行评估。

您应该接近规则编程,就像处理任何其他语言的编程一样,并在将数据传递到规则之前验证数据/检查空值。因此,例如,规则流或初始操作中的第一项任务将检查是否有空或无效数据。如果数据通过空检查,则会调用规则流中的其他任务。

请参阅文档Check for null values in rules以获取关于如何处理输入数据到规则的空值的其他建议。