Porque, por el ejemplo ("la fecha de emisión debe ser posterior a la
fecha actual", "fecha.incorrecta" o como prefieras), parece que se
trata de una validación. Es decir, si lo he entendido bien:
1. recibes determinados datos desde un formulario web
2. los metes en una estructura
3. se los pasas al al servicio que genera los informes
4. resulta que el servicio que genera los informes está recibiendo datos
que no son válidos y entonces lanza excepciones diciéndolo.
Pero digo yo, en mi abundante ignorancia e ingenuidad, ¿no sería más
lógico que esas validaciones ocurrieran antes de pedirle al servicio
que genere un informe? Seguramente digo alguna tontería pero ¿no sería
mejor validar los datos antes y que esa validación devolviera los
posibles errores (que entiendo que además pueden ser varios, no sólo
uno) de una forma más **normal** que con una excepción?
gnz/vnk
Por supuesto "gnz" :) Es un ejemplo para fines didácticos, no más. Lo suyo sería poner algo que no se pudiera validar tan simple como eso de la fecha desde el mismo formulario o así pero no quería complicarme la vida buscando ejemplos ;)
Aclaro una cosa.
Mi pegs no era tanto con el tema de dónde se hagan las validaciones (entiendo que sólo era un ejemplo) cuanto con el motivo de lanzar una excepción.
Es decir, para mi, un proceso en el que el input debe ser validado, debería poder devolver errores como algo más natural, no como excepciones. Entiendo que son esos los mensajes susceptibles de mostrarse al usuario (i.e. no son nullpointer, io, etc, sino "falta este dato" o "este dato no vale").
En esos casos, que entiendo que son susceptibles de i18n y que serán mostrados al usuario, y en un proceso que en un momento (el que prefiráis) realiza esa validación, devolver sos errores debería ser más **normal** que **excepcional**.
Gonzalo
gnz/vnk
(Todo esto, evidentemente, no es más que mi modesta opinión. Y no pretendo ni convencer a nadie ni tener razón, ok? De hecho, yo apenas soy un novato en esto. simplemente comento mi opinión y si me equivoco pues me lo decís. Pero vamos, que no he dicho que las excepciones sean antinaturales.)
Gonzalo, he usado un término absoluto como "antinatural", pero como ya dije previamente, en este tipo de debates todo debe ser relativizado. Disculpa si te ha molestado.