Поймать подкласс исключений И Исключение на верблюде - PullRequest
0 голосов
/ 17 марта 2012

У меня есть верблюжий маршрут, по которому я использую свой собственный конструктор маршрутов для прослушивания определенных типов исключений, которые я создал в своем коде.

так к моему маршруту я добавил

onException();
onMyTypeException();

Я также создал соответствующие методы в моем построителе маршрутов

public OnExceptionDefinition onException(){
return onException(Exception.class)

....
public OnExceptionDefinition onMyTypeException(){
return onException(MyTypeException.class)
....

Проблема в том, что onException (), кажется, перехватывает все, вместо того, чтобы позволить мне сначала уловить более конкретную ошибку. Идея заключается в том, что в моей системе я не учел все типы ошибок, поэтому, если некоторые обойдутся, поймайте их в onException ()

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 17 марта 2012

Camel сначала будет искать явное совпадение исключений ... но я думаю, что ваша инициализация предложений - это проблема. вам не нужно возвращать их в ваших методах и т. д.

в целом, убедитесь, что вы определили свои предложения onException () в методе configure () RouteBuilder перед настройкой любых маршрутов ...

см. эту страницу для более подробной информации ... как-то так ...

public void configure() throws Exception {

    onException(Exception.class).handled(true).log("general exception!!!");
    onException(MyException.class).handled(true).log("my exception!!!");

    from("direct:start").to("bean:myBean");
    ...
}
0 голосов
/ 17 марта 2012

Вы можете прочитать общие сведения об обработке ошибок с помощью Camel здесь. http://camel.apache.org/error-handling-in-camel.html

А для использования onException (которое также называется исключением) здесь есть документация: http://camel.apache.org/exception-clause.html

Однако обработка ошибок в Camel очень гибкая и сложная. А также обработка и обработка ошибок в интеграционных сценариях часто бывает сложной. Вот почему мы посвятили полную главу в книге «Верблюд в действии», чтобы подробно об этом рассказать. Поэтому, если вы получили книгу, прочитайте главу 5, она вам очень поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...