diff --git a/lib/network/images.dart b/lib/network/images.dart index 449542d..26189f7 100644 --- a/lib/network/images.dart +++ b/lib/network/images.dart @@ -234,19 +234,30 @@ class _StreamWrapper { } void _listen() async { - await for (var data in _stream) { - if (isClosed) { - break; - } - for (var controller in controllers) { - if (!controller.isClosed) { - controller.add(data); + try { + await for (var data in _stream) { + if (isClosed) { + break; + } + for (var controller in controllers) { + if (!controller.isClosed) { + controller.add(data); + } } } } - for (var controller in controllers) { - if (!controller.isClosed) { - controller.close(); + catch (e) { + for (var controller in controllers) { + if (!controller.isClosed) { + controller.addError(e); + } + } + } + finally { + for (var controller in controllers) { + if (!controller.isClosed) { + controller.close(); + } } } controllers.clear();