【问题标题】:Fetch custom exception from the exchange从交易所获取自定义异常
【发布时间】:2011-07-21 00:48:08
【问题描述】:

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

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

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

当我写的时候:

def 进程(交换:交换)= { val 异常:CustomException= exchange.getProperty(Exchange.EXCEPTION_CAUGHT, classOf[CustomException])

我得到了 null

但是当我写的时候:

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

我得到了我的异常对象

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

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

    在 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");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      相关资源
      最近更新 更多