Встречается на собеседованиях • сегодня
Как обрабатывать исключения внутри потока Stream
В Stream исключения можно обрабатывать несколькими способами:
- Оборачивание в try-catch внутри лямбды:
java
list.stream()
.map(item -> {
try {
return processItem(item);
} catch (Exception e) {
throw new RuntimeException(e);
}
})
.forEach(System.out::println);- Использование вспомогательного метода:
java
list.stream()
.map(this::safeProcess)
.forEach(System.out::println);
private Result safeProcess(Item item) {
try {
return processItem(item);
} catch (Exception e) {
throw new RuntimeException(e);
}
}- Использование Either из библиотек (например, Vavr):
java
list.stream()
.map(item -> Try.of(() -> processItem(item)))
.filter(Try::isSuccess)
.map(Try::get)
.forEach(System.out::println);Важно помнить, что checked exceptions нужно оборачивать в unchecked исключения, так как лямбды не поддерживают объявление checked exceptions. Для обработки исключений можно использовать peek() или фильтрацию успешных результатов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы