用户界面代码:
try {
authService.signInWithEmailAndPassword(
emailController.text, passwordController.text);
} catch (error) {
print("ui rethrow");
}
认证服务代码:
Future<User?> signInWithEmailAndPassword(
String email,
String password,) async {
try {
final credential = await _firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
return _userFromFirebase(credential.user);
} catch (e) {
print("service throw");
rethrow;
}
}
我想将 FirebaseAuthException 从身份验证服务重新抛出到 UI,因此我可以向用户提示出错的地方,但 UI try-catch 块不会捕获重新抛出的错误。
为什么我的代码不起作用?