Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter Dart-无法从连接流捕获异常_Flutter_Dart_Stream_Try Catch_Connectivity - Fatal编程技术网

Flutter Dart-无法从连接流捕获异常

Flutter Dart-无法从连接流捕获异常,flutter,dart,stream,try-catch,connectivity,Flutter,Dart,Stream,Try Catch,Connectivity,我无法捕获在connectivity.onConnectivityChanged.listen函数中引发的异常。 我尝试过使用try-catch块和onError函数,但无法让它们工作。 有人知道我做错了什么吗 import 'package:flutter/foundation.dart'; import 'dart:async'; import 'package:connectivity/connectivity.dart'; import 'package:dio/dio.dart';

我无法捕获在
connectivity.onConnectivityChanged.listen函数中引发的异常。
我尝试过使用try-catch块和
onError
函数,但无法让它们工作。 有人知道我做错了什么吗

import 'package:flutter/foundation.dart';
import 'dart:async';

import 'package:connectivity/connectivity.dart';
import 'package:dio/dio.dart';

class DioConnectivityRequestRetrier {
  final Dio dio;
  final Connectivity connectivity;

  DioConnectivityRequestRetrier({
    @required this.dio,
    @required this.connectivity,
  });

  Future<Response> scheduleRequestRetry(RequestOptions requestOptions) async {
    StreamSubscription streamSubscription;
    final responseCompleter = Completer<Response>();
    try {
      connectivity.onConnectivityChanged.listen(
        (connectivityResult) {
          if (connectivityResult != ConnectivityResult.none) {
            // streamSubscription.cancel();

            // An exception when dio.request fails
            throw Exception;

            responseCompleter.complete(
              dio.request(
                requestOptions.path,
                cancelToken: requestOptions.cancelToken,
                data: requestOptions.data,
                onReceiveProgress: requestOptions.onReceiveProgress,
                onSendProgress: requestOptions.onSendProgress,
                queryParameters: requestOptions.queryParameters,
                options: requestOptions,
              ),
            );
          }
        },
      ).onError((e) {
        throw e;
      });
    } catch (e) {
      rethrow;
    }

    return responseCompleter.future;
  }
}


试着这样做:

try {
     /// YOUR CODE HERE ///
    } on PlatformException catch (e) {
      print(e.toString());
    }

试着这样做:

try {
     /// YOUR CODE HERE ///
    } on PlatformException catch (e) {
      print(e.toString());
    }

您可以在我的代码示例中看到,我已经尝试使用try-catch块,但这不起作用。在异常上添加
也没有什么不同。在我的代码示例中,您可以看到我已经尝试使用try-catch块,但这不起作用。在异常情况下添加
也没有什么区别。