If there was a failure processing then the caused Exception would be set on the Exchange.

Parameters:

exchange - the message exchange

callback - the AsyncCallback will be invoked when the processing of the exchange is completed.
If the exchange is completed synchronously, then the callback is also invoked synchronously.
The callback should therefore be careful of starting recursive loop.