Han sido varias las conversaciones/consultas en las que he escuchado preguntas del tipo «como debo manejar la excepción», llegan tambien los ejemplos y contraejemplos y las respectivas dudas…
Pues bien, decidi hacer una pequeña encuesta al respecto o en todo caso una breve recopilación de respuestas luego de preguntar «y tu exactamente como lo haces, como lo harías o que recomendarías», aqui algunas de los datos que pude obtener:
– En la capa de negocios
– En la capa de servicios
– En la cada de datos (no la DAL, me refiero a la que llama a la Data Access Library)
– Parte en los stored procedures parte en la capa de negocios
– No uso (???)
– En todas las capas haciendo un throw exception desde la mas interna hacia arriba.
Luego de haber tomado nota, pregunté el «por qué?» de sus respuestas. Esto no con animo de reclamar nada, solo quería conocer una explicacion un poco mas técnica de la metodología en mención.
La verdad, es que no habia respuesta convincente.
Por lo poco que se o que recien he podido averiguar (gracias San Google!), lanzar excepciones implica costos de performance en la aplicación, es decir, que si lo ponemos en mas de una capa… adivina que? tu código cae en riesgo de ser mas lento(asi que, no abusen!).
Por mi parte seguiré colectando información.
De momento dos enlaces muy buenos (al menos para mi)
Good Exception Management Rules of Thumb
Best Practices of Exception Management
Un documento que muchos deberianmos leer… Exception Management Architecture Guide
Me parece o escuché Exception Management Application Block?
Saludos[at]Lima
Cross from here
El segundo enlace (la de codebetter) no está bien y además contradice en muchos aspectos el primer enlace.
el EMAB es viejo, ahora todos los app blocks estan dentro de Enterprise Library
es cierto, forma parte del entlib, incluso en el enlace se menciona…
Por otro lado, los enlaces que puse son para tener una idea, no confundamos recursos brindados por reglas generales.
Saludos[at]Casa