Throwing exceptions in the consequence is not safe and not advisable.
To stop the rules engine you can use the following statement in your
consequence:
drools.halt();
Use a fact, a call back, or an attribute to identify the problem you
detected.
[]s
Edson
2007/11/15, Ronald R. DiFrango <ron.difrango(a)gmail.com>:
All,
I have a situation where I want the rules execution to stop processing
immediately when it encounters a situation like the following:
rule "Invalid RTV Line"
salience 100
when
rtvDetailLine : DetailLine(detailRtvNumber:rtvNumber != null,
lineNumber != null )
rtvHeader : RtvHeader( rtvNumber != detailRtvNumber )
then
logger.debug("Invalid RTV Line");
throw new RuntimeException("Invalid RTV Line");
end
Basically this is a parent child relationship and under some circumstances
the process that feeds data into the rules it corrupts this relationship. I
want to stop the rules process immediately and do nothing further. As you
see above, my first attempt is just throw a runtime exception that is
caught/ logged and report by the calling program. Does this seem like a
reasonable approach or is there a better approach to do this?
Ron
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @
www.jboss.com