Publicado por: 2

La verdad es que algo muy sencillo de hacer y que deberíamos hacer como norma en todas nuestras aplicaciones.

Simplemente tenemos que implementar el método “Application_Error” del “Global.asax.cs” y podremos capturar cualquier error que se produzca en la aplicación aunque no hayamos controlado la Excepción con un Try-Catch.

Una vez capturado el error, podemos mostrarlo en nuestro Log (es aconsejable tener uno), o enviarnos un email con lo que ha pasado, e incluso limpiar el error y hacer como que no ha pasado nada…

Bueno, ahí va el código:

protected void Application_Error(Object sender, EventArgs ea)
{
    string uriFormat = "\r\n\r\nURI: {0}\r\n\r\n";
    string exceptionFormat = "{0}: \"{1}\"\r\n{2}\r\n\r\n";

    StringBuilder message = new StringBuilder();

    if (Request != null)
    {
        message.AppendFormat(uriFormat, Request.Path);
    }

    if (Server != null)
    {
        Exception e;
        for (e = Server.GetLastError(); e != null; e = e.InnerException)
        {
            message.AppendFormat(exceptionFormat, e.GetType().Name, e.Message, e.StackTrace);
        }
    }

    // En este caso, escribimos en nuestro log
    MyAppLogger.Log("** APP ERROR Sin controlar la excepción **\n" + message.ToString());

    //Server.ClearError(); // descomentar esto para cancelar el error
}

2 Comentarios

    1. Administrador Microteching Autor del artículo

      Eso es solo un ejemplo de lo que se puede hacer si tienes alguna clase implementada que te loguee.
      Sino, también puedes guardar el error en alguna tabla de la base de datos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.