import 'dart:async'; // 例外処理を行うこともできます。 void addLessThanFive(StreamController controller, int value){ if(value < 5){ controller.sink.add(value); } else { controller.sink.addError(StateError('$value is not less than 5')); } } main() { final controller = StreamController(); addLessThanFive(controller, 1); addLessThanFive(controller, 2); addLessThanFive(controller, 3); addLessThanFive(controller, 4); addLessThanFive(controller, 5); controller.stream.listen((value){ print(value); }, onError: (error){ print(error); }); } // 1 // 2 // 3 // 4 // Bad state: 5 is not less than 5