【发布时间】:2018-07-28 12:00:19
【问题描述】:
我有一个下载 api 数据的方法。但是我得到的是空数据的响应,所以我需要检查数据是否正确。
调用方法:
try {
fetchChartData();
} catch (EmptyResponseException e) {
view.showError();
}
并获取数据:
public void fetchChartData() throws EmptyResponseException {
Call<ChartModel> dailyChartCall = ... //some call
dailyChartCall.enqueue(new Callback<ChartModel>() {
@Override
public void onResponse(Call<ChartModel> call, Response<ChartModel> response) {
//EMPTY
if(response.body().getData().size() == 0){
<<-- THROW HERE
} else ...
我应该如何实现异常并将其传递到顶部? 简单的“抛出新的 EmptyResponseException”不起作用,因为 onResponse 是匿名类。
【问题讨论】:
-
为什么不使用 Toast、SnackBar 或其他警报消息而不是抛出异常?
-
我发现异常并在活动中显示文本
-
这个函数也是在2个activity中使用的,所以错误需要不同的处理方式
-
fetchChartData()是否与您拥有try-catch块的活动相同?