[ASP.NET] Creando páginas de error personalizadas

Posted on Actualizado enn


Un saludo para todos, bueno en este post quiero mostrar como podemos tener páginas de error personalizadas cuando trabajamos con ASP.NET. Es molesto (o por lo menos a mi me parece) cuando estamos en un sitio/página Web y se produzca un error  se muestre el error detallado, en esos casos podemos definir una plantilla que sea mostrada en aquellos casos es los cuales se genera un error no controlado en la aplicación.

Para configurar nuestras propias páginas de error, vamos a trabajar con el archivo web.config, luego allí buscamos el tag <system.web> que debe estar dentro del elemento <configuration>, una vez ubicados utilizamos el tag <customErrors>, del cual quiero comentar dos atributos:

  1. mode: tiene tres posibles valores que son on, off y RemoteOnly, los cuales definen su habilitar o no errores personalizados, y el último si será solo en el cliente
  2. defaultRedirect: define el path de la página de error a mostrar.

En el caso anterior, la página que se configure aplicará para todo tipo de error, sin embargo podemos definir definir páginas de error diferentes para cada uno o algunos de los posibles errores que podemos obtener, esto es bastante sencillo y solo es necesario agregar un elemento <error> dentro del elemento <customErrors>, y especificar de nuevo dos propiedades:

    1. statusCode: Código del error
    2. redirect: Path de la página de error personalizada.

Les menciono algunos códigos de error comunes (ver códigos de error):

Código error

Descripción

403

Usuario si permisos

404

Archivo no encontrado

408

Timeout

500

Error de servidor

503

Servidor sobrecargado

Entonces, un ejemplo de configuración sería:

   1:  <customErrors mode="On" defaultRedirect="page_errors/genericError.htm">
   2:      <error statusCode="403" redirect="page_errors/securityError.htm"></error>
   3:      <error statusCode="404" redirect="page_errors/notFound.htm"></error>
   4:  </customErrors>

Donde se puede observar que todas nuestras páginas están dentro de la carpeta page_errors, y tenemos dos páginas de error para códigos específicos y una página llamada genericError.htm para todos los demás.

Finalmente les voy a comentar algunos tips que por lo menos en mi experiencia me parecen correctos:

    1. Siempre definir al menos la página de error general.
    2. Definir páginas de error específicas para los errores más comunes.
    3. Cada página de error debe ser html y no aspx.
    4. Cada página de error debe tener información de contacto para el área de soporte.
    5. Las páginas de error deben tener un diseño simple.

Espero les sea de utilidad este post… hasta la próxima!

7 comentarios sobre “[ASP.NET] Creando páginas de error personalizadas

    Leonardo Monroy escribió:
    01/12/2012 en 17:10

    Joven Julio, muy interesante tu tuto…. me sirvio resto, ya esta implementado y funciona de pelos.
    Sigue asi no cambie….mi chino.
    Att:

    Leonardo Monroy
    Programador

    Sebastian escribió:
    05/29/2012 en 08:57

    “Cada página de error debe ser html y no aspx”
    por que no puede ser una pagina aspx? solo me queda esa duda

    muchas gracias por el tuto

      Julio Avellaneda respondido:
      05/29/2012 en 09:01

      Hola Sebastian, si puede ser aspx, pero el tema es que una simple página html digamos que no te puede generar error, y es solo de información al usuario, en la cual generalmente colocas un link al home del sitio, es más or simplicidad que lo recomiendo.

      Saludos

    Resumen Post 2012 « Todo en ASP.NET escribió:
    12/19/2012 en 22:04

    […] [ASP.NET] Creando páginas de error personalizadas […]

    Resumen Post 2012 « MVPs de LATAM escribió:
    01/04/2013 en 12:57

    […] [ASP.NET] Creando páginas de error personalizadas […]

    […] amarillas. Entonces que es lo que tenemos que hacer? Pues lo primero a tener en consideración es personalizar los mensaje de error, por lo menos tiene que ser una página de error amigable.  Con esto evitas el terror que le […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s