如何在颤振中单独处理 NoSuchMethodError

时间:2021-04-25 19:06:41

标签: flutter

我有一个集团:

if (event is RequestImage) {
      yield ResponsesLoading();
      try {
        File file;

        if (event.fromGallery) {
          file = await getFromGallery(mediaType: event.mediaType);
        } else {
          file = await getFromCamera(mediaType: event.mediaType);
        }
        

        if (file == null) {
         
          final response = await PraxApiClient().getDraftResponse(promptId: event.promptId);
          yield ResponseDraftSuccess(response: response);
        }

                                await apiService.uploadPic(responseId: event.responseId, file: file, accessToken: token);
        final response = await PraxApiClient().getDraftResponse(promptId: event.promptId);
        yield (ResponseDraftSuccess(response: response));
      } 
      catch (e) {
        yield ResponsesFailure(e.toString());
        print(e.toString());
        print(e.stackTrace.toString());
      }
    }

在文件返回空值的那一刻,我做了一个 apiCall getDraftResponse 来返回 ResponseDraftSuccess 状态。但当然我的程序一直在执行,并且由于文件为空,uploadPic api 调用失败,我的程序进入 ResponsesFailure 状态。我想在文件返回 null 时停止事件 RequestImage 的执行(但之后

final response = await PraxApiClient().getDraftResponse(promptId: event.promptId);
          yield ResponseDraftSuccess(response: response)

)。错误返回 NoSuchMethodError: 从空值。我正在考虑在 try 子句之后处理这个问题(添加另一个 catch 子句)但不确定我应该将什么传递给 catch 子句。

0 个答案:

没有答案