Как я могу сделать шаг OpenDolphin клиенту для отправки HttpHostConnectException?
Есть ли способ справиться с ситуацией, когда сообщение не доставляется на сервер? Журнал Dolphin четко информирует о ситуации, но я хотел бы поймать его из кода. Я искал какой-то метод, например: onError, чтобы переопределить, как onFinished:
clientDolphin.send(message, new OnFinishedHandlerAdapter() {
@Override
public void onFinished(List<ClientPresentationModel> presentationModels) {
// Do something useful
}
}
});
, но ничего такого нет. Также не работает упаковка send call в try/catch (не удивительно, поскольку send не блокирует код вызывающего абонента).
Я уверен, что есть какой-то простой способ получить информацию о недоставленном сообщении, но я не вижу его. Спасибо, в аванс, за ответы!
1 ответ
Вы можете назначить обработчик onException для ClientConnector - и вы действительно должны это делать. Обработчик исключений получит объект исключения, переданный в том, что произошло в асинхронном действии отправки.
Ниже приведен обработчик по умолчанию, который даже говорит вам, что вы должны делать;-)
Closure onException = { Throwable up ->
def out = new StringWriter()
up.printStackTrace(new PrintWriter(out))
log.severe("onException reached, rethrowing in UI Thread, consider setting ClientConnector.onException\n${out.buffer}")
uiThreadHandler.executeInsideUiThread { throw up } // not sure whether this is a good default
}