有没有办法处理邮件未送达服务器的情况?海豚日志清楚地表明情况,但我想从代码中捕获它。我正在寻找一些方法,比如: onError 以覆盖 onFinished :
clientDolphin.send(message, new OnFinishedHandlerAdapter() {
@Override
public void onFinished(List<ClientPresentationModel> presentationModels) {
// Do something useful
}
}
});
,但没有这样的。在try / catch中包装发送调用也不起作用(因为发送没有阻止其调用者代码,所以并不令人惊讶)。
我确实有一些简单的方法来了解未传递的消息,但我无法看到它。 多士先生,为了答案而获胜!
答案 0 :(得分: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
}