异常捕获节点

异常捕获节点的作用是捕获规则流中其它节点在执行时可能产生的异常,默认情况下在不添加异常捕获节点时,如果某个节点在运行时出现了异常,那么这个异常就会直接抛出,从而导致执行中断,为某个规则节点添加异常捕获节点后,一旦这个节点执行时出现异常, 那么异常会流向其下的异常捕获节点,我们可以在这个异常捕获节点中处理相应异常,也可以将规则流引流到其它的节点之后,从而避免由于异常而导致的执行中断,如下图所示:

img

在上图当中我们为“脚本1”节点添加了一个异常捕获节点,这样,在运行时,一旦“脚本1”节点产生异常,那么规则流不会流转到“脚本2”节点,而是流转到“异常捕获1”节点,然后再流转到“脚本11”节点。 运行时我们会发现,如果“脚本1”节点正常运行,那么规则流会正常流转到“脚本2”节点,一旦发生异常,规则流就会流向其下的异常捕获节点,从而改变了规则流向,同时规则计算也不会中断。

异常捕获节点有两个属性需要我们注意:

属性名 含义
要捕获的Exception完成类名 默认它的值是java.lang.Exception,也就是说所有的异常都会被捕获,当然我可以修改这个属性,以使得当前节点只会捕获某个特定的Exception,需要注意的是我们需要输入完整的类名(包含包名),且必须是java.lang.Exception类或子类,该属性不能为空
处理Exception的Bean 一个实现了com.bstek.urule.model.flow.ExceptionHandler接口并配置到Spring中的Bean的ID,默认值为urule.defaultExceptionHandler,引擎提供的一个会向控制台输出异常堆栈的默认实现,当然我们可以根据需要自己实现一个,该属性可以为空

results matching ""

    No results matching ""