【发布时间】:2015-11-19 14:28:58
【问题描述】:
OkHttp库Callback接口声明为
public interface Callback {
void onFailure(Request request, IOException e);
void onResponse(Response response) throws IOException;
}
onResponse 方法中未处理的异常将被 Call 类吃掉,正如我最近在 Callback failure for cancelled call in OkHttp 中发现的那样
我有几个与该设计相关的问题。
首先,为了强制在onResponse 中捕获异常而不是抛出它们,最好有不同的onResponse 方法声明,因为它们会被吃掉。
这是OkHttp Callback接口中的设计缺陷还是Java中这种代码的常见做法?
其次,当http请求到达onResponse回调方法时,我希望此时应该禁止取消请求。我会说这是一个错误。我说的对吗?
【问题讨论】:
-
我刚刚发现了这一点,我很生气。花了几个小时调试,后来发现该方法抛出异常。这不是 Java 的东西,只是一个糟糕的 API。
标签: java android exception-handling okhttp