как обрабатывать noSuchMethod отдельно в flutter

#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());
      }
    }
 

В тот момент, когда файл возвращает значение null, я делаю запрос getDraftResponse на возврат ResponseDraftSuccess состояния. Но, конечно, моя программа продолжает выполняться, и поскольку файл равен нулю uploadPic , вызов api завершается неудачно, и моя программа переходит в ResponsesFailure состояние. Я хочу остановить выполнение события RequestImage , когда файл возвращает значение null (но после

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

). Возвращена ошибка NoSuchMethodError : от нуля. Я подумываю об этом после предложения try (добавьте еще одно предложение catch). Но не уверен, что мне следует перейти к пункту «Уловка».

Комментарии:

1. Почему вы не можете просто использовать else , если не хотите выполнять все остальное?