OkHttp库Callback
接口声明为
public interface Callback {
void onFailure(Request request, IOException e);
void onResponse(Response response) throws IOException;
}
我最近在Callback failure for cancelled call in OkHttp
中发现的Call
课程会使onResponse方法的未处理异常被吃掉
我对该设计的问题很少。
首先,为了强制捕获onResponse
中的异常而不是抛弃它们,最好不要使用onResponse
方法的不同声明,因为它们会被吃掉。
这个设计是否存在于OkHttp Callback
接口中的缺陷,还是Java中的这种代码常见做法?
其次,当http请求到达onResponse
回调方法时,我希望应该禁止在此时取消请求。我会说这是一个错误。我是对的吗?
答案 0 :(得分:0)
我也在努力解决这个问题,现在我已经解决了以下问题:
new
关键是在OnResponse中调用OnFailure。我无法以任何其他方式访问Exception(虽然可能还有其他方法;这在我看来为OnFailure提供了一些额外的用处,并且我认为它很好地表达了意图)。请注意,可以出于其他原因调用OnFailure:https://square.github.io/okhttp/2.x/okhttp/com/squareup/okhttp/Callback.html