Errors Principiante

Usa Optional.orElseThrow() como una alternativa más clara e intencional a 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();
¿Ves un problema con este código? Cuéntanos.
📖

Autodocumentado

orElseThrow() señala claramente que la ausencia es inesperada.

🔒

Evita get()

Las herramientas de análisis estático marcan get() como riesgoso; orElseThrow() es idiomático.

Menos código repetitivo

No es necesario pasar un supplier para la NoSuchElementException por defecto.

Enfoque Antiguo
get() o orElseThrow(supplier)
Enfoque Moderno
orElseThrow()
Desde JDK
10
Dificultad
Principiante
Optional.orElseThrow() sin supplier
Disponible

Disponible desde JDK 10 (marzo de 2018)

Optional.get() se considera ampliamente un antipatrón porque oculta la posibilidad de fallo. El método orElseThrow() sin argumentos, añadido en Java 10, hace exactamente lo mismo pero deja clara la intención: el desarrollador espera un valor y quiere una excepción si está ausente.

Compartir 𝕏 🦋 in