Estoy construyendo la aplicación web ASP.NET estándar de 3 niveles, pero estoy luchando sobre dónde hacer ciertas cosas, específicamente el manejo de excepciones.¿Cómo y dónde manejar las excepciones en una aplicación web de 3 niveles? Específicamente SQL Base de excepciones
He intentado echar un vistazo en la web para encontrar algunos ejemplos, pero no encuentro ninguno que llegue hasta un proyecto completo que muestra cómo todo se vincula.
En mi nivel de datos me estoy conectando a SQL Server y haciendo algunas cosas. Sé que necesito detectar excepciones que podrían surgir como resultado, pero no estoy seguro de dónde hacerlo.
Por lo que he leído, debería hacerlo en el nivel UI, pero en ese caso no estoy seguro de cómo asegurar que la conexión a la base de datos esté cerrada. ¿Alguien puede aclarar cómo hacer esto? Además, si alguien sabe dónde podría encontrar un ejemplo de aplicación web de 3 niveles que siga las mejores prácticas, también sería genial.
gracias
gracias por la respuesta. ¿Cuáles son sus pensamientos sobre el manejo de SQLExceptions? Para los errores planteados dentro de sproc, ¿los detectaría en el DAL y arrojaría un error personalizado aquí o alguna alternativa? – Nick
En mi DAL actual (más una herramienta * DA *, que paso a mis objetos comerciales que también son objetos mitad DAL) capto y trato automáticamente con algunos errores específicos (como el error # 1205 de víctima de interbloqueo. Veo eso, lo intento una vez más), pero dejo que la mayoría de los errores se filtren. Algunas veces el objeto comercial puede hacer algo inteligente con ese error; si no, dejo que se filtre. En mi DAL pronto voy a registrar automáticamente el error y el texto y los parámetros del comando sql automáticamente. Consideré amablemente agregar el texto sql al mensaje de error, pero eso es una preocupación de seguridad. –
Solo detecte errores en sus sprocs/udf si puede (** A **) recuperar/reaccionar/tal vez tener éxito, o si (** B **) puede mejorar la información de error que se filtra. Por lo tanto, el valor predeterminado no es el manejo de errores en sproc/udf, pero a veces se agrega la entrega de errores. –