try / catch не является исключением - PullRequest
0 голосов
/ 10 марта 2020

Я использую пакет google_sign_in, и я немного новичок в обработке ошибок. Я заключил две строки в оператор try / catch и получил исключение в VSCode, хотя и проверял наличие PlatformExceptions. Строка, которая дает мне ошибку, - это то, где я устанавливаю переменную googleSignInAccount. Я пытался использовать Future#catchError, но их тоже не везло. Что я делаю не так?

Код:

    GoogleSignInAccount googleSignInAccount;
    GoogleSignInAuthentication googleSignInAuthentication;
    try {
      googleSignInAccount = await userRepository.googleSignIn.signIn();
      googleSignInAuthentication = await googleSignInAccount.authentication;
    } on PlatformException catch (e) {
      if (e.code == 'sign_in_canceled') {
        print('sign in canceled');
        return Future.error(e);
      }
      rethrow;
    } on Exception {
      print('an exception has occured');
    }
    final credential = GoogleAuthProvider.getCredential(
      accessToken: googleSignInAuthentication.accessToken,
      idToken: googleSignInAuthentication.idToken,
    );
...