Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Posible error] En el video de la clase: Retornando Excepciones

En el minuto 6:50 cuando el profesor refactoriza el método saca, agrega el if que lanza la excepción: SaldoInsuficienteException, todo bien hasta allí, el tema es que olvida (a mi parecer) agregar el "else" a ese ciclo de control IF. De hecho minutos después comprueba (minuto 10:45) en la clase TestCuentaExceptionSaldo que si el usuario saca de la cuenta un saldo mayor al que originalmente tiene, la excepción se muestra. Pero no verifica el saldo de la cuenta, si miramos, al estar ausente el "else" en el refactor antes mencionado, cuando se quiere sacar mas saldo del disponible se arroja arroja la excepción, PERO, aun asi efectua la operación: this.saldo -= valor;

No se si estoy en lo correcto y existe ese pequeño error, o el profesor si realiza correctamente la lógica de ese refactor.

1 respuesta
solución!

¡Hola Angel, espero que estés bien!

Gracias por tu pregunta sobre el video de la clase "Retornando Excepciones" en el curso de Java Excepciones. Entiendo tu preocupación acerca de la falta del "else" en el código refactorizado del método "saca".

En este caso, puedo confirmarte que el profesor realizó correctamente la lógica del refactor. Aunque parezca que se está ejecutando la operación "this.saldo -= valor" después de lanzar la excepción "SaldoInsuficienteException", en realidad, esa línea de código no se ejecutará si la excepción es lanzada.

El motivo es que cuando una excepción es lanzada, el flujo del programa se interrumpe y pasa a buscar un "catch" que pueda manejar esa excepción. En este caso, si la excepción "SaldoInsuficienteException" es lanzada, el programa buscará un bloque "catch" correspondiente para manejarla y no continuará ejecutando el código siguiente.

Por lo tanto, no debes preocuparte por esa aparente inconsistencia en el código. El "else" no es necesario en este contexto.

Espero haber aclarado tu duda. ¡Si tienes alguna otra pregunta, estaré encantado de ayudarte! ¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!