我已经声明了我的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])
我得到了我的异常对象
我如何检查处理器中抛出了哪种类型的异常!
答案 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");
}
}