2009-02-19 18 views

Respuesta

2

Cuando se produce un error que no debe tratar de atraparlo o conectarse directamente en el código de su aplicación a menos que sea un error del que pueda esperar recuperarse. Por ejemplo, si tiene una aplicación web basada en datos y la base de datos está fuera de línea, eso no es algo de lo que pueda recuperarse. Pero si envía un correo electrónico y tiene dos servidores de correo electrónico y el primero está inactivo, es posible que pueda recuperar utilizando el segundo servidor de correo electrónico.

He visto muchas aplicaciones ASP.NET donde los desarrolladores han usado try...catch bloques para "tragar" errores. En realidad, los bloques try...catch solo se utilizan cuando hay una estrategia de recuperación conocida en el caso de un error (como el uso de un servidor de correo electrónico alternativo en mi ejemplo anterior). Si tiene más de un puñado de bloques try...catch en su aplicación, probablemente lo esté haciendo mal.

El motivo por el que desea evitar el uso excesivo de los bloques try...catch es porque desea que el registro de errores y la notificación sean ortogonales a su aplicación. No desea tener que cortar y pegar el código de registro de errores en cada página o componente. En su lugar, desea agregar algún mecanismo para que cualquier excepción no controlada sea automáticamente registrada y los desarrolladores sean automáticamente notificados.

La buena noticia es que tal funcionalidad de registro y notificación de errores es bastante fácil de implementar. Mi preferencia es usar ELMAH, un sistema gratuito de registro y notificación de errores de fuente abierta. Alternativamente, puede usar el sistema de registro de errores incorporado de ASP.NET, Health Monitoring.

Para obtener más información sobre ELMAH y el control de estado, así como para obtener orientación sobre páginas de error personalizadas y configurar todo, ver mi artículo, Exception Handling Advice for ASP.NET Web Applications.

Happy Programming!