2015-01-23 2 views

ответ

1

Центр знаний является вашим другом в этом случае: Exception Handling in ODM

код с этой страницы является:

IlrExceptionHandler exceptionHandler = new IlrExceptionHandler() 
    { 
     public boolean handleException(IlrUserRuntimeException ex) 
     { 
      if (ex.isInConditions()) 
       return false; 
      else 
       throw ex; 
     } 
    }; 
    engine.setExceptionHandler(exceptionHandler); 
    engine.setRuleflowExceptionHandler(exceptionHandler); 

, который будет работать для RetePlus.

Для FastPath вы должны использовать RuleflowExceptionHandler

setRuleflowExceptionHandler

общественного недействительного setRuleflowExceptionHandler (обработчик IlrExceptionHandler) Устанавливает обработчик исключений, ответственный за перехват исключений во время выполнения брошенных во время выполнения ruleflow. Обратите внимание, что установка обработчика исключений не является обязательной. Обработчик будет не только вызван , когда исключение встречается в выполнении инструкции правила. За исключением того, что происходит во время выполнения правил в ruleflow вы должны использовать @link setExceptionHandler (IlrExceptionHandler)

Параметров: обработчик - обработчик исключения, отвечающий за отлов ruleflow исключения выполнения.

См RuleFlowExceptionHandler method javadoc

0

Я рекомендую вам создать семейство бизнес-правил для ответа на эту особенность требования. В долгосрочной перспективе было бы полезно повторно использовать этот набор правил для разных приложений или модулей правил.