从交换中获取自定义异常

时间:2011-07-20 08:32:42

标签: apache-camel

我已经声明了我的CustomException类。 当onException()捕获它时,它会进入我定义的处理器:

onException(classOf[CustomException]).process(doSmth)

到目前为止一切顺利。 我需要在处理器中检查异常是否为“CustomException”类型的问题

我写的时候:

def process(exchange:Exchange)= {     val exception:CustomException = exchange.getProperty(Exchange.EXCEPTION_CAUGHT,classOf [CustomException])

我得到了

但是当我写道:

def process(exchange: Exchange) = {
    val exception: Exception = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, classOf[Exception])

我得到了我的异常对象

我如何检查处理器中抛出了哪种类型的异常!

1 个答案:

答案 0 :(得分:0)

在Java DSL中,这有效......

public void process(Exchange exch) throws Exception {
    Exception e = (Exception) exch.getProperty(Exchange.EXCEPTION_CAUGHT);
    if (e instanceof CustomException) {
        logger.info("custom exception");
    } else {
        logger.info("other excpetion");
    }
}