Duda de diseño sobre excepciones #225
-
Buenas haciendo el ejercicio de monedero me surgió una duda: Vieron que varias veces en el código se pregunta por ejemplo si el saldo o tal restricción no cumple (ej: limite de extracción) se lanza una excepción. Sacando el tema de los code smells, no podría ser que todas los posibles casos que tiraban una excepción particular ahora sean objetos en una lista e implementen una interfaz con su respectiva validación? Y si no cumple alguna tiras una excepción mas general. Se perdería esa especificación en la excepción, pero capaz el código queda mejor. Podría ser esto o es mejor tener un chequeo de cada caso para tener excepciones mas especificas y saber donde estoy fallando? Saludos!! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
Hola @Franpanozzo Es una posibilidad pero creo que esto que comentas de que finalmente lanzarías una excepción mas general, es algo a tener en cuenta. Aunque en este ejercicio no vamos a estar capturando las excepciones para darle un tratamiento (y tampoco nos va a interesar), sí podemos pensar que quien la este capturando para hacer algo es posible que vaya a querer identificarlas de una mejor manera. Por ejemplo, podemos pensar que el tratamiento ante una excepción del tipo |
Beta Was this translation helpful? Give feedback.
-
Perfecto, por lo que me decís capaz en otros requerimientos vas a tener que capturarlo y hacer diferentes cosas. Pero entonces en este caso, que no están los requerimientos de que yo o alguien podría capturarlo desde otro lado, seria valido implementar lo que dije o es preferible identificarlas de mejor manera con estos ifs?? |
Beta Was this translation helpful? Give feedback.
Hola @Franpanozzo
Es una posibilidad pero creo que esto que comentas de que finalmente lanzarías una excepción mas general, es algo a tener en cuenta.
Aunque en este ejercicio no vamos a estar capturando las excepciones para darle un tratamiento (y tampoco nos va a interesar), sí podemos pensar que quien la este capturando para hacer algo es posible que vaya a querer identificarlas de una mejor manera.
Por ejemplo, podemos pensar que el tratamiento ante una excepción del tipo
SaldoMenorException
sea llevar al usuario a un flujo donde pueda elegir un monto menor a extraer. Mientras que ante unaMaximaCantidadDepositosException
por ahí simplemente nos vamos a limitar a informarle que no pue…