Dans un bloc de code relativement simple qui vérifie un point d'extrémité de l'API (détermination de l'état de connexion), je compte sur un try..catch
Comme le mécanisme de validation si l'application peut communiquer avec le serveur.
Le problème que je vais avoir est que, tout en débogage, le débogueur s'arrête toujours sur la ligne de connexion (lorsque la demande est hors ligne), même si je gère les erreurs interne.
Future<bool> isOnline() async {
try {
// VSCode debugger always stops on this line when no connection
await http
.get('${consts.apiBaseUrl}/api/ping')
.timeout(Duration(seconds: normalTimeoutLength))
.catchError(
(_) {
// Trying catchError on the Future
_isOnline = false;
return false;
},
);
_isOnline = true;
return true;
} on HttpException catch (_) {
// Trying to catch HTTP Exceptions
_isOnline = false;
return false;
} on SocketException catch (_) {
// Trying to catch Socket Exceptions
_isOnline = false;
return false;
}
}