[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