Java 骆驼不';捕捉不到异常

Java 骆驼不';捕捉不到异常,java,exception,apache-camel,dsl,spring-camel,Java,Exception,Apache Camel,Dsl,Spring Camel,但是logger.warn(“错误”)未被调用 我错了什么 如何为驼峰路由注册全局异常处理程序?将一个异常块移动到路由顶部,不要忘记使用end()终止符 end()。如果您这样做,Camel将其视为一个onException块。简单地说,seda将有路由消耗,而没有输出处理器,因为onException()之后的所有内容都会获得onException块的一部分 路由特定异常处理: 处理路由seda:rest\u上传中发生的异常 .from("seda:rest_upload")

但是
logger.warn(“错误”)未被调用

我错了什么


如何为驼峰路由注册全局异常处理程序?

将一个异常块移动到路由顶部,不要忘记使用
end()
终止符

end()。如果您这样做,Camel将其视为一个
onException
块。简单地说,seda将有路由消耗,而没有输出处理器,因为
onException()
之后的所有内容都会获得
onException
块的一部分


路由特定异常处理: 处理路由
seda:rest\u上传中发生的异常

.from("seda:rest_upload")
                .process(new Processor() {
                    @Override
                    public void process(Exchange exchange) {
                        if(true){
                            throw new RuntimeException();
                        }})
                .to("seda:parsed_csv")
                .onException(Exception.class).process(new Processor() {
            @Override
            public void process(Exchange exchange) throws Exception {
                logger.warn("Error");
            }
        });

全局异常处理:处理当前
RouteBuilder中所有路由中的异常

from("seda:rest_upload")
    .onException(Exception.class).process(exchange -> logger.warn("Error")).end()
    .process(e -> {throw new RuntimeException();})
    .to("seda:parsed_csv");

from("seda:parsed_csv").to("log:parsed_csv");

from("timer:tmr?period=1000")
    .setBody(constant("mock"))
    .to("seda:rest_upload");

它会捕获在seda:rest\u上传之前抛出的异常吗?我想要一个全局处理器。如果我不使用end(),该怎么办?
onException(Exception.class).process(exchange -> logger.warn("Error")); //There is no need for end(), whole block is part of onException block

from("seda:rest_upload")
    .process(e -> {throw new RuntimeException();})
    .to("seda:parsed_csv");

from("seda:parsed_csv").to("log:parsed_csv");

from("timer:tmr?period=1000")
    .setBody(constant("mock"))
    .to("seda:rest_upload");