在處理多條路由之間的異常時,我遇到了一些問題。作爲一個java開發者的角度來看,我想提取一些通用的邏輯給一個普通的路由,以便其他路由可以直接調用普通路由,而不用在任何地方包含公共邏輯(如route-version函數調用),但是當它來處理錯誤,我發現它有點棘手。如何處理多條路由中的異常或故障
例如:
//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")
問題是,當從「模擬:commonlogic」拋出一些異常終點,異常不會被抓到doTry ...無論是在路徑1和路徑2定義doCatch塊。看起來這種異常只能在普通路由範圍內處理。但我想要的是普通路由只是「拋出」異常,「呼叫者」路由自己處理它。有沒有辦法做到這一點?
謝謝
非常感謝您的回答 – Javen