Errors Débutant

Utilisez Optional.orElseThrow() comme alternative plus claire et intentionnelle à get().

✕ Java 8
// Risky: get() throws if empty, no clear intent
String value = optional.get();

// Verbose: supplier just for NoSuchElementException
String value = optional
    .orElseThrow(NoSuchElementException::new);
✓ Java 10+
// Clear intent: throws NoSuchElementException if empty
String value = optional.orElseThrow();
Un problème avec ce code ? Dites-le nous.
📖

Auto-documenté

orElseThrow() signale clairement que l'absence est inattendue.

🔒

Évite get()

Les outils d'analyse statique signalent get() comme risqué ; orElseThrow() est idiomatique.

Moins de code répétitif

Pas besoin de passer un supplier pour la NoSuchElementException par défaut.

Ancienne Approche
get() ou orElseThrow(supplier)
Approche Moderne
orElseThrow()
Depuis JDK
10
Difficulté
Débutant
Optional.orElseThrow() sans supplier
Disponible

Disponible depuis JDK 10 (mars 2018)

Optional.get() est largement considéré comme un anti-pattern car il cache la possibilité d'échec. La méthode orElseThrow() sans arguments, ajoutée dans Java 10, fait exactement la même chose mais rend l'intention claire : le développeur attend une valeur et veut une exception si elle est absente.

Partager 𝕏 🦋 in