複数のルート間で例外を処理するときにいくつかの問題があります。
Java開発者の観点から、いくつかの共通ロジックを共通ルートに抽出して、他のルートがどこにでも共通ロジックを含まずに共通ルートを直接呼び出すことができるようにしたいと考えています.(ルートバージョン関数呼び出しのように)しかし、エラーになると扱いは、ちょっと難しいと思いました。
例えば:
//main logic 1
from("direct:route1")
.doTry()
.to("direct:common")
.doCatch(Exception.class)
.log("Error in route1")
.end()
//main logic 2
from("direct:route2")
.doTry()
.to("direct:common")
.doCatch(Exception.class)
.log("Error in route2")
.end()
//common logic
from("direct:common")
.to("mock:commonlogic")
問題は、「mock:commonlogic」エンドポイントから例外がスローされた場合、その例外が route1 と route2 の両方で定義された doTry...doCatch ブロックによってキャッチされないことです。例外は共通ルートスコープで処理できるようです。しかし、私が望むのは、共通ルートが例外を「スロー」し、「呼び出し元」ルートがそれをすべて単独で処理することです。それを行う方法はありますか?
ありがとう