Получить пользовательское исключение из обмена - PullRequest
0 голосов
/ 20 июля 2011

Я объявил свой класс CustomException.Когда onException () ловит его, он переходит к определенному мной процессору:

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

Пока все хорошо.Проблема, которая мне нужна в процессоре, чтобы проверить, имеет ли исключение тип «CustomException» или нет

, когда я пишу:

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

Я получил NULL

Но когда я пишу:

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

Я получил свой объект исключения

Как я могу проверить, какой тип исключения генерируется в процессоре!

1 Ответ

0 голосов
/ 20 июля 2011

в 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");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...