<br> I need to say I like both your arguments, Michael and Yang. The solution, though, will require investigation and a lot of tests. May I ask you please to open a feature request in JIRA adding your comments?<br><br> Thanks,
<br> Edson<br><br><div><span class="gmail_quote">2007/8/24, Anstis, Michael (M.) <<a href="mailto:manstis1@ford.com">manstis1@ford.com</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">For what it's worth I think this would be a good idea
too.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">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. </font></span><span><font color="#0000ff" face="Arial" size="2">Why should a
whole session be invalidated because a single rule activation failed
anyway?</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">With kind regards,</font></span></div>
<div dir="ltr" align="left"><span></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Mike</font> </span></div><br>
<blockquote style="margin-right: 0px;">
<div dir="ltr" align="left" lang="en-us">
<hr>
<font face="Tahoma" size="2"><b>From:</b> <a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users-bounces@lists.jboss.org</a>
[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users-bounces@lists.jboss.org</a>] <b>On Behalf Of </b>Yang
Song<br><b>Sent:</b> 24 August 2007 16:16<br><b>To:</b> Rules Users
List<br><b>Subject:</b> Re: [rules-users] How to catch Exceptions when firing
rules<br></font><br></div><div><span class="e" id="q_114989a85562bef3_1">
<div></div>
<div>Thanks a lot for the answer, Mark. But I don't think it makes sense.
</div>
<div> </div>
<div>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. </div>
<div> </div>
<div>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. </div>
<div> </div>
<div>What do you think? If JBoss Rules already has the ability to do this job,
can you please let me know?</div>
<div> </div>
<div>Thanks again,</div>
<div>Yang<br><br> </div>
<div><span class="gmail_quote">On 8/24/07, <b class="gmail_sendername">Mark
Proctor</b> <<a href="mailto:mproctor@codehaus.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">mproctor@codehaus.org</a>>
wrote:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;">
<div bgcolor="#ffffff" text="#000000">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.<br><br>Mark<br>Yang Song
wrote:
<blockquote type="cite">
<div><span>
<div>Hi, </div>
<div> </div>
<div>Anyone knows how to catch the exception when firing the rules? </div>
<div> </div>
<div>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. </div>
<div> </div>
<div>If the exception thrown from the rule's action
part can be caught externally, the system can be protected from
interrupting Exception.</div>
<div>
<p><font style="background-color: rgb(255, 255, 255);" color="#3333ff" face="courier new,monospace">try
{<br> _log.debug("Firing rules
in : " + getName());</font></p>
<p><font style="background-color: rgb(255, 255, 255);" color="#3333ff" face="courier new,monospace">
session.fireAllRules();</font></p>
<p><font style="background-color: rgb(255, 255, 255);" color="#3333ff" face="courier new,monospace">} catch (Exception e)
{<br> _log.info("Error when
firing rules: ", e);<br>}</font> <br></p>
<p>Thanks, <br>Yang</p></div></span></div><pre><hr size="4" width="90%">
_______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users@lists.jboss.org
</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre></blockquote><br> </div><br>_______________________________________________<br>rules-users
mailing list<br><a href="mailto:rules-users@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users@lists.jboss.org
</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br></blockquote>
</div><br></span></div></blockquote></div>
<br>_______________________________________________<br>rules-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">
https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br></blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> Software Engineer - JBoss Rules Core Developer<br> Office: +55 11 3529-6000<br> Mobile: +55 11 9287-5646
<br> JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a>