我正在使用JavaDSL来配置路由。我有一个类似于下面给出的路由。
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来重新引发异常。不管怎样,camel都在将异常设置为exchange,但没有破坏异常。
我在junit测试用例中这样做。我正在使用OneException处理器处理异常。在处理器内部,我正在进行断言。断言错误由camel自动处理,测试不会被标记为通过/失败。
from(CONSUMER)
.doTry()
.doCatch(SocketTimeoutException.class,Exception.class)
.beanRef("ErrorProcessor","processErrorMessage")
.to("freemarker:ErrorResponseTransformer.ftl")
.end()
.to(PRODUCER)
尝试捕捉
onException(Exception.class)
.handled(true)
.process(new Processor() {
public void process(Exchange e) throws Exception {
helper.processErrorMessage(e);
log.info("Response error: "
+ MessageHelper.extractBodyAsString(e.getIn()));
log.info("Response error: "
+ MessageHelper.extractBodyAsString(e.getOut()));
}
});
on Exception处理异常并将其作为响应错误消息处理以显示。你甚至可以放一个。至(ERRORDESTINATION)
或窃听以继续正常流量。
或者使用camel的errorHandler。
希望这有帮助。
在书写代码与阅读代码的时候,经常会看到这一句代码: typedef void *HANDLE ,它是何方神圣呢?如何理解呢? 不理解它的时候,感觉它很神奇,知道它以后,它就是个typedef的定义,只不过是void*类型罢了,也就是HANDLE等价于void *,我们可以叫它披着句柄皮的指针(PS:指针和句柄是有区别的,在这说句废话); 对于void* 神通广大,因为它作为函数参数or函数返回值,
当你用作图命令时,MATLAB用多种图形对象创建图形,例如线,文本,表面(完整列表见Graphics Objects)。所有图形对象都有控制其性能的属性。你可以在MATLAB中询问每种属性的取值并设置大部分的属性值。 每当MATLAB创建一个图形对象时,它就给该对象赋以一个标识符(称为句柄)。可以用此句柄访问对象属性。若你想作下列操作,句柄图形很有用。 修改图形外观。 通过编写能直接创建和操作对象
对于来自Android应用程序的所有网络流量,我们都使用retrofit/okhttp3。到目前为止,一切似乎都进行得相当顺利。 然而,我们现在偶尔会出现应用程序/进程用完文件句柄的情况。 null null 如何防止OkHttp创建太多的文件句柄?
所以我的问题是:我的测试是对的?在我的应用程序中缓存方法查找有一些问题?或者我需要在需要使用时总是进行查找?如果我不创建缓存,性能就太低了。 谢谢你
问题内容: 我正在尝试自己学习编程,但仍在尝试掌握它。我收到以下错误: java.io.IOException:句柄无效 这是我的代码 我相信,每当我调用该方法时,都会出现错误,当我尝试显示默认构造函数中的字节数时,它可以很好地工作并显示。 问题答案: 好了,在实际开始使用它之前,请先关闭构造函数的块。将结束部分从构造函数中移到完成后将被调用的位置,例如在main 下方调用或单独的close方法。
你可以创建任何MATLAB函数的句柄,然后用这些句柄作为函数链接的途径。函数句柄主要用来传递自变量列表给其他函数,用句柄执行函数或求值。 在MATLAB中,通过在函数名前加上符号@构造函数句柄。下面例子为SIN函数创建一个函数句柄,然后赋值给变量fhandle: fhandle = @sin; 用MATLAB的fevel函数对函数句柄求值。下面的plot_fhandle函数接收一个函数句柄和数据