我正在使用Java DSL來配置路由。我有一條類似於下面給出的路線。Apache駱駝 - 處理和重新拋出異常
RouteBuilder builder = new RouteBuilder() {
public void configure() {
// onException(Exception.class).bean("bean");
onException(Exception.class).to("anotherProcessor");
from("queue:a").bean("someBean").to("processor");
}
};
如何在做某些活動後炸燬異常?在例外情況下,我嘗試配置一個處理器和一個bean來重新拋出異常。無論哪種方式,駱駝設置例外交換,但不能炸掉異常。
我正在做一個junit測試用例。我正在使用onException處理器處理異常。在處理器內部,我正在做我的斷言。斷言錯誤由駱駝自動處理,並且測試不會被標記爲合格/不合格。
你是什麼意思「炸掉例外」?你想達到什麼樣的行爲? – Ralf
我有一個處理器onException,如果它拋出任何錯誤或異常,控制去DelegateSyncProcessor和異常/錯誤沒有冒泡到客戶端。 –
您是否使用Camel JMS組件?如果是,那麼你需要設置'transferException = true'(參見[documentation](http://people.apache.org/~dkulp/camel/jms.html))。您也可能需要在'onException'語句中調用'.handled(false)'。如果錯誤是由處理器處理的,我不記得駱駝的默認設置是什麼。可能是因爲Camel將默認情況下處理的異常標記爲異常。 – Ralf