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 <[EMAIL PROTECTED]>:
>
> 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
> [email protected]
> 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
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to