我有一种下载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是匿名类。
答案 0 :(得分:0)
我假设您正在使用MVP结构来设计应用。
因此,除了捕获异常外,您还可以这样做
public void fetchChartData(){
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){
***presenter.showError();***
} else ...
{
>>>> do your logic here <<<<
presenter.showChartData();
}
在演示者showError和showChartData中,您可以调用相应的视图函数。