Witam.
Natknąłem się na pewien problem.


  Future<Map<String, dynamic>> postRequest(String endpoint, Map<String, dynamic> obj) async {
    try {
      final response = await post(
        endpoint,
        obj,
      ).timeout(Duration(seconds: 10));

      return jsonDecode(response.bodyString ?? "");
    } on SocketException {
      throw APIException("Brak połączenia z serwerem. Sprawdź dostęp do internetu.");
    } on TimeoutException {
      throw APIException("Przekroczono limit połączenia. Serwer jest niedostępny lub sprawdź dostęp do internetu i spróbuj ponownie później.");
    } on FormatException {
      throw APIException("Serwer zwrócił niepoprawny format danych. Spróbuj ponownie później lub skontaktuj się z administratorem.");
    }
  }

Mam ogólny request w HttpService, który na tę chwilę metodą POST ogarnia tylko logowanie do aplikacji. Do API łączę się lokalnie z emulatora.

  1. Wyłączenie API -> zwraca FormatException
  2. Wyłączenie neta w emulatorze -> zwraca FormatException

Jak mam zwrócić SocketException oraz TimeoutException? Chce też jeszcze dorzucić HttpException, ale nie łapie w ogóle tych wyjątków, które faktycznie występują.