THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Why is the exception null when I use onException?
If you use onException
to handle exceptions, such as shown below:
Code Block |
---|
.onException(Exception.class).handled(true) .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { Exception cause = exchange.getException()); // why cause exception is null ??? } }) .end() |
Then make notice that because you use handled(true)
, then the caused exception is no longer available from exchange.getException()
, because we told Camel that we will handle the exception.
Instead you can access the caused exception from a property on the exchange with the key Exchange.EXCEPTION_CAUGT
, as shown below:
Code Block |
---|
.onException(Exception.class).handled(true) .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { Exception cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class); // we now have the caused exception } }) .end() |