这是使用Firebase 进行电话号码身份验证的功能, _signInWithPhone是一个流。
void signInWithPhone() {
emit(state.copyWith(status: FormzStatus.submissionInProgress));
try {
_phoneNumberSignInSubscription = _signInWithPhone(
phoneNumber: state.phone.value, timeout: verificationCodeTimeout)
.listen((event) {
emit(
state.copyWith(verificationId: event),
);
});
} on PhoneAuthError catch (e) {
emit(state.copyWith(
status: FormzStatus.submissionFailure, errorMessage: e.toString()));
} catch (_) {
emit(state.copyWith(status: FormzStatus.submissionFailure));
}
在没有 try/catch 块的情况下如何最好地处理错误。我相信 try/catch 块会导致无法按预期捕获错误。请提出一种更好的方法,它应该可以有效地与 Flutter Bloc/Cubit 一起使用。提前致谢