Camel Exception handling doesnt work if exception clause is defined in a separate class

前端 未结 2 1406
面向向阳花
面向向阳花 2021-01-04 18:24

I am trying to build a application with several camel routes which re use many common routes internally. Hence, I am trying to segregate the routes in several different Rou

2条回答
  •  慢半拍i
    慢半拍i (楼主)
    2021-01-04 18:42

    Based on the accepted answer, I found a cleaner way to implement exception handling, so you don't have to call super.configure() in every route. Just call a method that handles onException in the constructor of the base class.

    //Base class that does exception handling
    public abstracExceptionRouteBuildert class BaseAbstractRoute extends RouteBuilder {
      protected BaseAbstractRoute() {
        handleException();
      }
    
      private void handleException() {
        onException(Exception.class).handled(true).to("mock:error");
      }
    }
    
    //Extend the base class
    public class MyRouteBuilder extends BaseAbstractRoute {
      @Override
      public void configure() throws Exception {
        from("direct:start").throwException(new Exception("error"));
      }
    }
    

提交回复
热议问题