首页 > 解决方案 > 如何处理 StreamSubscription 中 onData 回调的异常?

问题描述

我想处理来自“onData”函数的异常(第一个位置参数),但是在抛出异常时不会触发 onError。我刚刚收到“未处理的异常”警告。

我是否误解了使用上的“onError”?什么时候会被解雇?

代码:

final Logger log = Logger('test logger');
client.getUrl(Uri.parse(url)).then((HttpClientRequest request) {
      return request.close();
    }).then((HttpClientResponse response) {
      try {
        response.listen((d) {
          throw Exception("TEST EXCEPTION");
        }, onDone: () {
          log.finer("onDone"); 
        }, onError: (e, stack) {
          log.warning("onError"); 
        }, cancelOnError: true);
      } catch (e, stack) {
        log.warning("listen"); 
      }
    }).catchError((e, stack) {
      log.warning("future"); 
    });

标签: exceptionflutterstreamfuturesubscription

解决方案


推荐阅读