如何 return 在 dart 中向用户发送异常消息?
How to return a exception message to the user in dart?
是否可以 return 将异常消息返回给用户?如果是,我该如何实现?我想让用户知道异常消息 returned 每当发生时。另外,我不希望我的应用程序在发生异常时崩溃。
更具体地说,我想 return 在用户尝试登录时将错误消息返回给用户。我使用 Firebase 作为我的身份验证提供程序。
为了更好地理解,我在下面包含了我的代码。
提前谢谢你。
Future<User?> signInWithEmailAndPassword(
String email,
String password,
) async {
try {
final credential = await _firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
return _userFromFirebase(credential.user);
throw Exception('Some Error occured. ');
} on auth.FirebaseAuthException catch (e, _) {
print(e);
} catch (e) {
print(e);
}
}
您可以使用 ScaffoldMessenger 向用户显示错误消息
Future<User?> signInWithEmailAndPassword(
BuildContext context,
String email,
String password,
) async {
try {
final credential = await _firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
return _userFromFirebase(credential.user);
throw Exception('Some Error occured. ');
} on auth.FirebaseAuthException catch (e, _) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(e.toString()),
));
} catch (e) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(e.toString()),
));
}
}
是否可以 return 将异常消息返回给用户?如果是,我该如何实现?我想让用户知道异常消息 returned 每当发生时。另外,我不希望我的应用程序在发生异常时崩溃。
更具体地说,我想 return 在用户尝试登录时将错误消息返回给用户。我使用 Firebase 作为我的身份验证提供程序。
为了更好地理解,我在下面包含了我的代码。
提前谢谢你。
Future<User?> signInWithEmailAndPassword(
String email,
String password,
) async {
try {
final credential = await _firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
return _userFromFirebase(credential.user);
throw Exception('Some Error occured. ');
} on auth.FirebaseAuthException catch (e, _) {
print(e);
} catch (e) {
print(e);
}
}
您可以使用 ScaffoldMessenger 向用户显示错误消息
Future<User?> signInWithEmailAndPassword(
BuildContext context,
String email,
String password,
) async {
try {
final credential = await _firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
return _userFromFirebase(credential.user);
throw Exception('Some Error occured. ');
} on auth.FirebaseAuthException catch (e, _) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(e.toString()),
));
} catch (e) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(e.toString()),
));
}
}