第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Camel - 在 Global onException 中捕獲拋出的異常

Camel - 在 Global onException 中捕獲拋出的異常

拉風(fēng)的咖菲貓 2023-03-02 10:39:20
我試圖在全局 onException 中捕獲我自己的異常。在捕獲到 Jaxb 異常后,我拋出了我的異常。但是 CustomException 不會被 onException 捕獲onException(Exception.class)    .handled(true)    .log("Globally Caught CustomException")     .end();from("start:direct")    .doTry()        .unmarshal(soapMessage)    .doCatch(JAXBException.class)        .log("Locally Caught JAXBException")        .throwException(new CustomException()    .endDoTry();
查看完整描述

2 回答

?
四季花海

TA貢獻1811條經(jīng)驗 獲得超5個贊

根據(jù)https://people.apache.org/~dkulp/camel/try-catch-finally.html(參見Camel error handling is disabled部分),使用doTry .. doCatch .. doFinallyCamel Error Handler 時不適用。因此,OnException不會觸發(fā)任何。

如果你想用 捕獲異常,OnException你應(yīng)該直接拋出它而不是在DoTry .. DoCatch. 現(xiàn)在您可能想創(chuàng)建兩個onException,一個處理Exception.class,一個處理JAXBException.class

onException(Exception.class)
            .handled(true)
            .log("Globally Caught CustomException")
            .end();
onException(JAXBException.class)
            .handled(true)
            .throwException(new CustomException())
            .end();

但是第一個onException不會被調(diào)用,因為Camel 不允許在已經(jīng)處理錯誤的情況下進行進一步的錯誤處理。這是由 完成的org.apache.camel.processor.FataFallbackErrorHandler,它捕獲新的異常,記錄警告,將其設(shè)置為 Exchange 上的異常,并停止任何進一步的路由(Camel In Action,第二版)。


查看完整回答
反對 回復(fù) 2023-03-02
?
嚕嚕噠

TA貢獻1784條經(jīng)驗 獲得超7個贊

試試這個,我剛剛修改了您的代碼以重現(xiàn)它似乎有效:


 onException(Exception.class)

            .handled(true)

            .log("Globally Caught CustomException")

            .end();


    from("timer://simpleTimer?period=1000")

            .setBody(simple("Timer at ${header.firedTime}"))

            .to("direct:demo");


    from("direct:demo")

            .doTry()

                .process(new Processor() {

                    @Override

                    public void process(Exchange exchange) throws Exception {

                        throw new JAXBException("Some Exception");

                    }

                })

            .doCatch(JAXBException.class)

            .log("Locally Caught JAXBException")

            .throwException(new CustomException())

            .endDoTry();

日志輸出:

http://img1.sycdn.imooc.com//64000c9100017c1c19220235.jpg

查看完整回答
反對 回復(fù) 2023-03-02
  • 2 回答
  • 0 關(guān)注
  • 244 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號