Такой кейс даже не проверял, каюсь. Просто не вижу смысла выносить в отдельную переменную метод референс (Если уж сильно хочется, то можно вынести, но rethrow явно оставить в теле лямбды). Да, это костыль. Но что поделать, если лямбды в джаве кривые и не позволяют адекватно работать с исключениями.
Вы не так поняли. rethrow ЗАСТАВЛЯЕТ ловить исключение (или явно объявлять его в сигнатуре) за пределами использования лямбды (в данном примере — стрим-цепочки).
Rethrow-методы удобны, когда необходимо явно ловить исключение за пределами Stream-цепочки. Uncheck же необходимы для случаев, когда мы точно знаем, что исключение в данном месте невозможно и нет смысл его перехватывать
При такой схеме ключи получать надо перед каждым голосованием, ещё и из дома надо выходить. Нужна схема однократного получения ключа с последующей возможностью голосовать из дома
Checked exceptions
Primitive types that are not classes
Static members
Non-private fields
Wildcard-types
Важно ли это — не думаю
Примеры использования:
Rethrow-методы удобны, когда необходимо явно ловить исключение за пределами Stream-цепочки. Uncheck же необходимы для случаев, когда мы точно знаем, что исключение в данном месте невозможно и нет смысл его перехватывать