[rules-users] How to catch Exceptions when firing rules

Mark Proctor mproctor at codehaus.org
Fri Aug 24 20:15:39 EDT 2007


ok I have added a ConsequenceExceptionHandler to RuleBaseConfiguration, 
default just wraps and re-throws as a runtime exception. You can 
override this to provide a custom consequence exception handler. But do 
be aware that if you swallow the working memory integrity may be 
invalid, if the error happened during a working memory action.

Mark
Anstis, Michael (M.) wrote:
> For what it's worth I think this would be a good idea too.
>  
> Perhaps the default ASM wrapper around the RHS could use a try...catch 
> block and log any exceptions of a rules' activation in a (drools) 
> accessible log? Heck you could even allow certain accepted exceptions 
> to be defined as a property of the rule; and any other non-defined 
> exception types cause the session to become invalidated. If we're ever 
> to let "the business" define rules we need to accept they might make 
> mistakes that we're better off capturing and report back than 
> invalidate the whole session. Why should a whole session be 
> invalidated because a single rule activation failed anyway?
>  
> With kind regards,
>  
> Mike 
>
>     ------------------------------------------------------------------------
>     *From:* rules-users-bounces at lists.jboss.org
>     [mailto:rules-users-bounces at lists.jboss.org] *On Behalf Of *Yang Song
>     *Sent:* 24 August 2007 16:16
>     *To:* Rules Users List
>     *Subject:* Re: [rules-users] How to catch Exceptions when firing rules
>
>     Thanks a lot for the answer, Mark. But I don't think it makes sense.
>      
>     Because in some scenarios, you cannot guarantee the consequence
>     part of rule is 100% correct -- there could be errors happening in
>     run-time which are hard to predict, especially when a complex
>     action or logic will be executed as the concequece.
>      
>     There should at least be some mechanisms to tell whoever fires the
>     rule that there is something wrong during the rule firing process,
>     then and he can do something, e.g. create a new session. Also it
>     should enable the rule firer to catch these exceptions and do the
>     clean up work silently -- instead of leaving these things on the
>     stderr even cannot be seen in the logs. This will make the program
>     depending on the JBoss Rules to be more robust.
>      
>     What do you think? If JBoss Rules already has the ability to do
>     this job, can you please let me know?
>      
>     Thanks again,
>     Yang
>
>      
>     On 8/24/07, *Mark Proctor* <mproctor at codehaus.org
>     <mailto:mproctor at codehaus.org>> wrote:
>
>         Once an exception is thrown on a conseuqence the current
>         session is considered invalid. You'll need to add the try
>         catch inside of the actual consequence.
>
>         Mark
>         Yang Song wrote:
>>         Hi,
>>          
>>         Anyone knows how to catch the exception when firing the rules?
>>          
>>         I wrapped the session.fireAllRules() method using
>>         try...catch, however it doesn't work: when someone wrote bad
>>         code in the rule's action part, the Exception will be thrown
>>         and printed to the stderr, and this will make the rule engine
>>         stop working -- the try...catch outside doesn't help anything.
>>          
>>         If  the exception thrown from the rule's action part can be
>>         caught externally, the system can be protected from
>>         interrupting Exception.
>>
>>         try {
>>                 _log.debug("Firing rules in : " + getName());
>>
>>                 session.fireAllRules();
>>
>>         } catch (Exception e) {
>>                 _log.info("Error when firing rules: ", e);
>>         }
>>
>>         Thanks,
>>         Yang
>>
>>         ------------------------------------------------------------------------
>>
>>         _______________________________________________
>>         rules-users mailing list
>>         rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
>>         https://lists.jboss.org/mailman/listinfo/rules-users
>>           
>
>          
>
>         _______________________________________________
>         rules-users mailing list
>         rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
>         https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070825/26ebd909/attachment.html 


More information about the rules-users mailing list