【发布时间】:2021-09-02 21:36:06
【问题描述】:
我有 func ,在调用函数之后,我想抛出一个 ApiException,但我没有抓住它。
第 1 步:
我没有在这里捕获 ApiException
FutureOr<void> login({String? user, String? password}) async {
try {
emit(LoadingLoginState());
await loginUseCase?.login(user, password);
} on ApiException catch (e) { // I'nt catch ApiException here
emit(ErrorLoginState(errorMessage: e.errorMessage));
} catch (_) {
emit(ErrorLoginState(errorMessage: S.current.connectionProblem));
}
}
第 2 步:
class LoginUseCase {
final LoginRepository _loginRepository;
LoginUseCase(this._loginRepository);
Future<LoginResponse?>? login(String? user, String? password) =>
_loginRepository.login(user, password);
}
第 3 步:
abstract class LoginRepository{
Future<LoginResponse?>? login(String? user, String? password);
}
第 4 步:
抛出 ApiException()
class UserRepoImpl implements LoginRepository {
UserApi? userApi;
UserRepoImpl({this.userApi});
@override
Future<LoginResponse?>? login(String? user, String? password) async {
throw ApiException();
}
}
【问题讨论】:
标签: flutter dart flutter-test