Tengo este tipo de formatoError al manejar ¿Debo arrojar una excepción? ¿O manejar en la fuente?
asp.net MVC View -> Service Layer -> Repository.
Por lo tanto, la vista llama a la capa de servicio que tiene lógica comercial/de validación en ella, que a su vez llama al Repositorio.
Ahora mi método de capa de servicio generalmente tiene un tipo de retorno de bool para que pueda devolver verdadero si la consulta de la base de datos ha sido satisfactoria. O si falló Luego se muestra un mensaje genérico para el usuario.
Por supuesto, registraré el error con elmah. Sin embargo, no estoy seguro de cómo debería llegar a este punto.
Me gusta en este momento mi Repositorio tiene tipos de devolución anulados para actualizar, crear, eliminar.
Entonces, si una actualización falla, ¿debo probar/atrapar en mi repositorio que arroja el error, entonces mi capa de servicio lo detecta y elmah señaliza y devuelve falso?
O debería tener estos métodos de repositorio devuelvan un "bool", intente/capture el error en el repositorio y luego devuelva "verdadero" o "falso" a la capa de servicio que a su vez devuelve "verdadero" o "falso" a la vista?
El manejo de excepciones todavía me confunde cómo manejar los errores y cuándo tirar, y cuándo detectar el error.
Esta técnica presenta los siguientes problemas: 1) Cada vez que el ensamblaje de nivel inferior introduce más comprobaciones o más excepciones, todas las capas superiores deberían cambiar para ajustar la excepción correctamente; de lo contrario, el envoltorio se convierte en un comodín glorificado y ganó no tiene mucho sentido 2) El uso de diferentes tipos de excepciones para diferentes errores aumenta la fidelidad del manejo de errores y si solo tenemos una excepción, donde sea que la maneje, tendrá que escribir su lógica de envoltura (si LogicException se debe a algo que manejarlo, de lo contrario, déjalo ir). Podría haber otros también ... –
1) Baw. Tendría que atrapar estas nuevas excepciones de todos modos, entonces, ¿por qué llorar cuando está en un nivel inferior en lugar de en la interfaz de usuario? 2) Si haces muchas cosas, posiblemente puedas atrapar decenas de tipos de excepciones en el nivel de UI. Esto es increíblemente molesto y ensucia tu código con lógica en la interfaz de usuario que realmente no debería estar allí. Una vez más, está REDACTANDO la excepción original, por lo que aún puede CAPTAR un solo tipo y examinar InnerException para todas sus necesidades de fidelidad sin muchas capturas. 3) Podría haber otros rebuts, pero soy demasiado flojo para enumerarlos. – Will
@Charles Prakash Dasari: Tener tipos de excepción distinguidos por tipo de falla no es realmente útil. Lo que es mucho más útil es que se distingan por estado del sistema. Por ejemplo, si se supone que una rutina debe actualizar un registro en la base de datos y no funciona, podría ser útil para un usuario saber si sucedió desde un tiempo de espera de bloqueo o un restablecimiento de conexión TCP, pero desde el punto de vista del programa, lo que es mucho más importante es saber si ... – supercat