Я не знаю, как вы можете сделать это с чистыми потоками, но вы можете определить метод, который возвращает поток из списка и выдает исключение, если он пустой.
private <T> Stream<T> throwIfEmpty(List<T> list) {
if(list.isEmpty()) {
throw new IllegalArgumentException("List must not be empty");
}
return list.stream();
}
, тогда вы можете использовать это следующим образом:
List<Client> clients = throwIfEmpty(repo.findByNumber(number))
.map(client -> new ClientDto(client.getName()))
.collect(Collectors.toSet());
возможно, это решение вас порадует:)