enero 19, 2006

Sobre la administración de excepciones

(Este artículo aplica para Visual Studio 2003).

Las excepciones son muy costosas. Al conocer las causas de la excepción, y escribir código a prueba de las mismas o que las maneje de manera eficiente, se puede incrementar drásticamente el rendimiento (performance) y escalabilidad de tu aplicación. Cuando se diseña e implementa manejo de excepciones, hay que analizar varios factores para asegurar un rendimiento óptimo. Así, por ejemplo, podríamos tener:

Implementar un administrador de errores en el Global.asax

El primer paso para administrar las excepciones es implementar un administrador global de errores en el archivo Global.asax o en el code-behind del mismo. Esto permite atrapar todas las excepciones que no hayan sido manejadas en la aplicación. Dentro del administrador por lo menos deberíamos preocuparnos de registrar la página que ocasiona el error, el información de la pila (call stack) y el nombre de la excepción y el mensaje que arroja.

Esto es muy sencillo de programar, en el evento Application_Error, de la siguiente manera:

public void Application_Error(object s, EventArgs ev)
{
StringBuilder message = new StringBuilder();
If (Server != null) {
Exception e;
For (e = Server.GetLastError(); e != null; e = e.InnerException)
{
Message.AppendFormat(“{0}: {1}{2}”,
e.GetType().FullName,
e.Message,
e.StackTrace);
}
// Registrar en el log la información
}
}

(La traducción a VB.NET se las dejo a ustedes).

Más información:

MSDN: Rich Custom Error Handling with ASP.NET
HOW TO: Create Custom Error Reporting Pages in ASP.NET by Using Visual C# .NET

Continuará…