2009-04-02 27 views
8

¿Cuál es la mejor forma de manejar excepciones que se producen en declaraciones catch. Actualmente estamos escribiendo el mensaje de excepción para el método de escritura del objeto de respuesta. Pero quiero una solución mediante la cual el usuario reciba solo un mensaje de error general de que algo salió mal, pero tenemos que obtener una descripción detallada del error. Me gustaría conocer las diferentes prácticas empleadas para el manejo de excepciones en C#.Métodos para manejar excepciones en un proyecto web utilizando C#

Respuesta

7

Para el proyecto web y para protegerse de las excepciones que se envían al navegador, puede activar la Supervisión de estado y también el uso de páginas de error personalizado. Si está esperando la posibilidad de una excepción dentro de la declaración de captura, simplemente coloque otra captura de prueba allí para que caiga con gracia.

En el Global.asax También puede suscribirse al evento Application_Error, que será llamado para una excepción no controlada

Andrew

supervisión de estado en ASP.NET: http://www.4guysfromrolla.com/articles/031407-1.aspx

+0

Definitivamente el camino a seguir +1 –

1

Escribir en el registro de eventos es una de las opciones.

2

Registraría el error detallado en mi base de datos y redirigiría al usuario a una página de error genérica.

4

Bien por ti por querer arreglar esto. Escribir mensajes de excepción directamente al usuario puede representar un riesgo de seguridad importante: como ya se ha dado cuenta, los mensajes de excepción pueden contener mucha información que podría ayudar a un usuario malintencionado a obtener acceso a su sitio.

Echaré un vistazo a ELMAH (Módulos y manejadores de registro de errores); es una forma fácil de agregar el registro de errores detallados a su aplicación web.

1

Como dijo REA_ANDREW, use Health Monitoring junto con las páginas de error personalizadas.

Una cosa que no dijo explícitamente es que debes evitar el estilo de programación que pone a prueba/atrapa bloques alrededor de todo. El monitoreo de estado registrará las excepciones no controladas, y las páginas de error personalizadas mostrarán al usuario lo que quiera que el usuario vea sobre el error (en todo caso). Pero esto solo ocurrirá si lo haces y no si tomas las excepciones, así que déjalos en paz y déjalos que se propaguen.

Cuestiones relacionadas