Skip to content

Instantly share code, notes, and snippets.

@chalin
Forked from Sfshaza/main.dart
Last active April 23, 2018 15:14
Show Gist options
  • Save chalin/df7c1168a5c6b20fda2a76d6ff33a1da to your computer and use it in GitHub Desktop.
Save chalin/df7c1168a5c6b20fda2a76d6ff33a1da to your computer and use it in GitHub Desktop.
streams/throw_error
// Copyright (c) 2015, the Dart project authors.
// Please see the AUTHORS file for details.
// All rights reserved. Use of this source code is governed
// by a BSD-style license that can be found in the LICENSE file.
import 'dart:async';
Future<int> sumStream(Stream<int> stream) async {
var sum = 0;
try {
await for (var value in stream) {
sum += value;
}
} catch (e) {
return -1;
}
return sum;
}
Stream<int> countStream(int to) async* {
for (int i = 1; i <= to; i++) {
if (i == 4) {
throw new Exception('Intentional exception');
} else {
yield i;
}
}
}
main() async {
var stream = countStream(10);
var sum = await sumStream(stream);
print(sum); // -1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment