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