TGViewer
Библиотека джависта | Java, Spring, Maven, Hibernate Библиотека джависта | Java, Spring, Maven, Hibernate @javaproglib · 22K subscribers
Post #7787 2.13K
🔥 Optional.orElseThrow()

Как обычно обрабатываете отсутствие значения? Проверяете на null, кидаете исключение вручную, пишите if-else?

Optional умеет делать это элегантно.

🔹 Что делает orElseThrow()

Возвращает значение из Optional, если оно есть. Если пусто — кидает исключение. Можно передать свой Supplier для кастомного исключения.

🔹 Пример

Optional<User> userOpt = findUserById(123);

// Вместо:
if (!userOpt.isPresent()) {
throw new UserNotFoundException("User not found");
}
User user = userOpt.get();

// Пишем:
User user = userOpt.orElseThrow(
() -> new UserNotFoundException("User not found")
);


Без параметра кидает NoSuchElementException:
User user = userOpt.orElseThrow(); // Java 10+


🔹 Зачем это нужно

— Компактный код без if-блоков.
— Явная обработка отсутствия значения.
— Чистый, декларативный стиль без boilerplate.

══════ Навигация ══════
Вакансии • Задачи • Собесы

🐸 Библиотека джависта

#Enterprise
  • 👍 9
  • 👏 2
  • 🔥 1
More from @javaproglib
  1. Oct 12, 2026👀 Как вы смотрите видео? Разбираете урок, слушаете интервью фоном или начинаете на телефо…
  2. Oct 10, 2026Post #7892
  3. Oct 10, 2026Read. Write. Edit. Bash. Это базовый набор операций Pi — агента, на котором построен OpenC…
  4. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  5. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  6. Sep 30, 2026🫡 Шпаргалка по аннотациям Spring Boot @Autowired, @RestController, @Transactional, @Cache…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →