Wir beschreiben Drools Ausnahmebehandlung in Details. In Drools, die Standard-Exception-Handler ist bekannt als “Folge Exception Handler”. Es bietet minimale Informationen wie die folgenden.
ein) Die Regel
b) Wo die Ausnahme statt
c) Die Ursache mit Java-Stack-Trace
Drools erlauben auch, um eigene Ausnahme schreiben handler.The “ConsequenceException” erstreckt “java.lang.RuntimeException”.Der Konstruktor Signatur ist unten angegeben.
ConsequenceException(Throwable rootCause, Rule-Regel)
Die einzige Methode zur Verfügung steht “Öffentlichkeit Regel getRule()”.
Die “ConsequenceExceptionHandler” ist eine Schnittstelle, die ausgebildet ist, um benutzerdefinierte schreiben handler.The einzige verfügbare Methode ist unten angegeben, und es überschrieben werden, um kundenspezifische Handling zu tun ist,.
Leere handle(Aktivierung Aktivierung,
WorkingMemory workingMemory,
Ausnahme exception)
Beispielcode ist unten angegeben :-
import java.io.Externalizable;
import org.drools.runtime.rule.ConsequenceExceptionHandler;
public class CustomConsequenceExceptionHandler
implements ConsequenceExceptionHandler, Externalizable {
public void handleException( Activation activation,
WorkingMemory workingMemory,
Exception exception ){
// Write custom handling code here.
}
}
Um benutzerdefinierte Handhabung zu verbessern “Runtime” kann auch erweitert werden,.
Zur Identifizierung von Regeldatei (.TFL) Übersetzungsfehler, “hasErrors()” Methode von “KnowledgeBuilder” Klasse kann verwendet werden,. Folgende ist ein Beispiel-Code-Snippet zur Durchführung des Verfahrens.
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newFileResource("D:/Workspace/TestProj/src/Test.drl"), ResourceType.DRL);
wenn (kbuilder.hasErrors()) {
System.out.println(kbuilder.getErrors().toString());
throw new Runtime(“Nicht in der Lage zu kompilieren ”Test.drl ”.”);
}