2012-04-10 24 views
8

Recientemente me he unido a un proyecto asp.net mvc en proceso en el que no hay mucha coherencia al tratar con excepciones en el controlador; algunos desarrolladores devuelven datos al cliente para que el usuario sepa qué es lo que está mal, otros los rechazan para que lleguen al controlador del nivel del servidor que los procesa y los registra, sin informar al usuario de qué se trata.Lanzar excepciones y notificar al usuario

Me parece obvio que ambos enfoques son incorrectos por sí solos, y en su lugar deben complementarse; a lo que estoy atascado, es cómo hacer eso. Supongo que el eventual manipulador/registrador de excepciones podría redirigir al usuario a una página web de error al detectar algo particularmente desagradable, pero eso limita el mecanismo a cosas simplemente graves.

Estoy buscando una forma de hacer "lanzar" y "regresar ..." en un momento en el que atrapo una excepción, por lo que la selecciono y la registro del lado del servidor y obtengo el lado del cliente de datos que me permite decirle al usuario que ha habido un contratiempo.

Mi experiencia con asp.net es muy limitada, y aunque creo que entiendo al mvc lo suficiente como para que no sea un problema, esta es una especie de "¿cuál es la mejor práctica?" pregunta de alguien que trabaja con personas que no se preocupan demasiado por las mejores prácticas.

+0

El hecho de que te preocupes solo por esto te hace una buena adición al equipo.Pero asegúrate de hacer que tus compañeros de equipo también vean la importancia de esto, de lo contrario serás el único que intentará mejorar las cosas mientras los demás continúan rompiéndolo. – MarioDS

+0

Estoy de acuerdo con Mario. Abordar su preocupación con su equipo es importante. Si crees que tienes la mejor metodología para lidiar con excepciones, compártela con tu equipo, ya que mejorará el producto a largo plazo. Tener una conversación informal con ellos también puede revelar su proceso de pensamiento y las cosas que puede haber pasado por alto. – Tung

Respuesta

2

Hay un buen proyecto llamado Elmah para registrar errores y excepciones en aplicaciones ASP.NET. Lo puede encontrar here

ELMAH (Módulos de registro de errores y controladores) es una función de registro error en toda la aplicación que es completamente enchufable. Puede ser añadido dinámicamente a una aplicación web ASP.NET en ejecución, o incluso a todas las aplicaciones web ASP.NET en una máquina, sin ninguna necesidad de volver a compilar o volver a implementar .

Una vez ELMAH se ha caído en una aplicación web que se ejecuta y configurado adecuadamente, se obtiene las siguientes instalaciones sin cambiar una sola línea de código:

  • registro de casi todas las excepciones no controladas.
  • Una página web para remotamente ver todo el registro de excepciones recodificadas.
  • Una página web para ver de forma remota los detalles completos de cualquier excepción registrada, incluidas las acumulaciones de colores .
  • En muchos casos, puede revisar la pantalla amarilla original de muerte que ASP.NET generó para una excepción determinada, incluso con el modo customErrors desactivado.
  • Una notificación por correo electrónico de cada error al el momento en que ocurre.
  • Una fuente RSS de los últimos 15 errores del registro.
0

La aplicación MVC que estoy trabajando en la Application_Error implementa en el Global.asax para manejar excepciones lanzadas desde la aplicación y luego redirige al usuario a una página de error estándar. El Controlador de la página de error maneja el registro y también muestra la información suficiente sobre el error para permitir que una persona de soporte encuentre su sesión en el sistema y ayude a resolver cualquier problema.

Cuestiones relacionadas