Исключение флаттера http - PullRequest
0 голосов
/ 01 марта 2020

Поэтому, следуя некоторым урокам, я попадаю в это странное исключение, которое продолжает приходить и замораживать мое приложение.

Это исключение возникает, когда я выбрасываю исключение: Exception in VS CODE

Вот экран обработки моего исключения.

class Auth with ChangeNotifier {
  String _token;
  DateTime _expiryDate;
  String _userId;

  Future<void> _authenticate(
      String email, String password, String urlSegment) async {
    final url =
        'https://identitytoolkit.googleapis.com/v1/accounts:$urlSegment?key=YOUR_API_KEY';
    try {
      final response = await http.post(
        url,
        body: json.encode(
          {
            'email': email,
            'password': password,
            'returnSecureToken': true,
          },
        ),
      );
      final responseData = json.decode(response.body);
      print(responseData);
      if (responseData['error'] != null) {
        print("FUCK");
        throw HttpException(responseData['error']['message']);
      }
    } on HttpException catch (error) {
      print(error);
      throw error;
    }
  }

  Future<void> signUp(String email, String password) async {
    return _authenticate(email, password, 'signUp');
  }

  Future<void> logIn(String email, String password) async {
    return _authenticate(email, password, 'signInWithPassword');
  }
}

enter image description here

1 Ответ

0 голосов
/ 01 марта 2020

почему вы кидаете ошибку? если вы не справитесь с этим, то в других местах вашего приложения оно может зависнуть или даже взломать приложение sh. Вы должны обработать это исключение вместо того, чтобы повторно вызывать или помещать выполнение этого метода в try catch и обрабатывать исключение в catch blo c.

Как я уже говорил, у вас есть 2 варианта:

  1. удалить throw error
  2. назначить выполнение другому try catch и handle (не выброшено) соответствующим образом (обычно просто регистрировать исключение для дальнейшего исследования)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...