2

私は、Java例外を処理し、それらを処理するための戦略を決定することを目的としたモジュールに取り組んでいます。例外は、私が知っていること(TransformationExceptionなどの明示的なビジネス例外)またはより一般的な環境関連のもの(JMSエラー、IOエラーなど)である可能性があります。

ナレッジベースに挿入されたファクトはすべて同じクラスであり、例外をラップ(含む)します。

処理方法を知っている例外(TransformationExceptionなど)に明示的に一致するルールを作成し、「その他すべて」をキャッチする別のルールを作成したい

問題は、TransformationExceptionを含むファクトの場合、両方のルールが実行され、出力が不確実になることであるように思われます。

実行の順序を操作するために顕著性に依存せずに、このような排他的なルールを作成するにはどうすればよいですか(これは私が読んだものからは悪い習慣のようです)?

満足できない解決策があり、結果は.drlでルールが定義されている順序に依存します。

4

2 に答える 2

0

例外固有のルールには高い顕著性を使用し、一般的なルールには低い顕著性を使用することをお勧めします。または、アジェンダグループを使用して、最初に特定のルールを実行し、次にキャッチオールルールを実行することもできます。

複数の実行を防ぐために、より高い顕著性ルールのアクションでファクトを撤回することができます。

于 2010-05-07T08:35:36.777 に答える
0

アクティベーショングループを見てください。これらのグループを使用すると、一連のルールを排他的なグループに入れて、最大で1つが起動するようにすることができます。つまり、デフォルトのルールの顕著性が低いことと組み合わせて、ここでトリックを実行します。

于 2010-05-09T00:36:40.900 に答える