gpt4 book ai didi

java - Apache Camel onException

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:46 27 4
gpt4 key购买 nike

我想捕获路由中的所有异常。

我添加这个 OnExeption :

onException(Exception.class).process(new MyFunctionFailureHandler()).stop();

然后,我创建了 MyFunctionFailureHandler 类。

public class MyFunctionFailureHandler  implements Processor {

@Override
public void process(Exchange exchange) throws Exception {
Throwable caused;

caused = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class);

exchange.getContext().createProducerTemplate().send("mock:myerror", exchange);
}

}

不幸的是,它不起作用,我也不知道为什么。

如果有异常,程序必须停止。

我怎么知道为什么这段代码不起作用!!

谢谢。

最佳答案

我在我的路线上使用了这个:

public class MyCamelRoute extends RouteBuilder {

@Override
public void configure() throws Exception {

from("jms:start")
.process(testExcpProcessor)

// -- Handle Exceptions
.onException(Exception.class)
.process(errorProcessor)
.handled(true)

.to("jms:start");
}
}

在我的errorProcessor

public class ErrorProcessor implements Processor {

@Override
public void process(Exchange exchange) throws Exception {


Exception cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);

if(cause != null){
log.error("Error has occurred: ", cause);

// Sending Error message to client
exchange.getOut().setBody("Error");
}else

// Sending response message to client
exchange.getOut().setBody("Good");
}
}

希望对你有帮助

关于java - Apache Camel onException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14198043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com