¿Cómo implemento el manejo de errores de manera elegante? Por ejemplo, mi capa de acceso a datos puede arrojar 2 tipos de errores: 1) acceso no autorizado, en cuyo caso la página debe ocultar todo y mostrar el mensaje de error 2) errores que informan al usuario que algo como esto ya existe en la base de datos (digamos que el nombre no es único, por ejemplo), y en este caso no quisiera ocultar todo.Error al manejar en la arquitectura de 3 capas
Editado:
Como resultado de algunos comentarios aquí ideé que debería crear derivados de tipos de excepción especializados, como NotAuthorizedException, DuplicateException, etc, etc .... es todo lo fino y elegante, sin embargo puedo ver 2 problemas potencialmente:
1) Cada proceso almacenado tiene un campo de retorno p_error donde contiene un mensaje de error. Al obtener los datos de DB, necesito verificar este campo para ver qué tipo de error se ha devuelto, para poder lanzar las excepciones apropiadas. Por lo tanto, todavía tengo que almacenar mis tipos de error/mensajes de error en alguna parte ... En otras palabras, ¿cómo debo enviar el mensaje exacto al usuario (en ciertos momentos) sin verificar primero el campo p_error? Lo que me devuelve al objeto de error. ¿Nadie?
2) Esto puede convertirse potencialmente en una pesadilla donde el número de excepciones es igual a la cantidad de tipos de mensajes de error.
¿Falta algo aquí?
Muchas gracias a todos!
simple y elegante, tenía algo como esto implementado en realidad. El único inconveniente de esto es referencias adicionales para incluir – sarsnake