Skip to content

Commit d938c94

Browse files
committed
Ejemplo de throw desde optional
1 parent 54a22d7 commit d938c94

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

  • modules/src/main/java/com/platzi/functional/_14_optionals

modules/src/main/java/com/platzi/functional/_14_optionals/Optionals.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ static Optional<String> optionals() {
2828

2929

3030

31-
31+
3232
//Y si lo que queremos es evitar devolver un null pero no tenemos un valor para regresar,
3333
//podemos usar simplemente:
3434
return Optional.empty();
@@ -105,7 +105,12 @@ static void obtenerUnDato() {
105105

106106

107107
//Es importante mencionar que Optional no ejecutara ninguna de estas funciones
108-
//en casos donde el dato no existe (null, empty() ). Asi que es seguro.
108+
//en casos donde el dato no existe (null, empty() ). Asi que es una manera segura de
109+
//escribir codigo sin preocuparnos por la presencia del dato.
110+
111+
//En casos muy especificos donde quisieramos generar un Exception cuando haya una ausencia
112+
//de datos, podemos usar el metodo `orElseThrow`:
113+
integerOptional.orElseThrow(() -> new DatoNecesarioException());
109114

110115
//Optional nos da un acercamiento hacia un concepto que en FP se conoce como Monad
111116
}
@@ -220,4 +225,8 @@ static String complexFunction() {
220225
static void someComplexOperation(String s) {
221226

222227
}
228+
229+
static class DatoNecesarioException extends IllegalArgumentException {
230+
231+
}
223232
}

0 commit comments

Comments
 (0)