gpt4 book ai didi

error-handling - 所有异常的 Camel 死信 channel

转载 作者:行者123 更新时间:2023-12-03 09:06:47 26 4
gpt4 key购买 nike

我正在创建一个死信 channel 错误处理程序,如下所示

errorHandler(deadLetterChannel("direct:myDLC").useOriginalMessage().maximumRedeliveries(1));

from("direct:myDLC")
.bean(MyErrorProcessor.class);

Bean MyErrorProcessor 应该能够处理所有类型的已检查和未检查异常,如下所示。
public void process(Exchange exchange) throws Exception {
Exception e=(Exception)exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);
e.printStackTrace();
if(e instanceof MyUncheckedException){
logger.error("MyUncheckedException: "+((MyException) e).getErrorCode()+" : "+((MyException) e).getErrorDesc());
}else if(e instanceof MyException){
logger.error("MyException: "+((MyException) e).getErrorCode()+" : "+((MyException) e).getErrorDesc());
}
}

但是在处理异常之后,原始消息应该被重定向到路由的端点。一旦这样处理异常,如何继续路由?

最佳答案

使用 continue() 将起作用,它将忽略错误并继续处理,因此您可能想要处理特定的异常

http://camel.apache.org/exception-clause.html

onException(MyException.class)
.continued(true)
;

如果您在此异常处理中使用 .useOriginalMessage() ,则原始消息将是继续的消息。

关于error-handling - 所有异常的 Camel 死信 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29791686/

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