Independientemente de lo bien que probar sus aplicaciones ColdFusion, sin duda habrá momentos en los que una excepción se produce en la aplicación.
Una excepción es cuando algo ocurre fuera de lo común. A menudo, esto se traducirá en un mensaje de error de mirada desagradable que se presenta al usuario. Usted probablemente ha visto los tipos de mensajes de error que ColdFusion presenta cuando algo va mal - aunque estos pueden ser muy útiles para nosotros como desarrolladores, es probablemente suficiente para asustar a la mayoría de los usuarios fuera de su sitio web!
Puede utilizar las técnicas de manejo de errores para mostrar un mensaje de error más amigable para el usuario. Usted todavía puede presentar su encabezado y pie de página como lo haría normalmente, así como cualquier otro contenido que estaba en la página, justo hasta que ocurrió el error, así como después del error.
ColdFusion ofrece una serie de herramientas de gestión de errores para ayudar a los desarrolladores en la captura de errores y realizar otra acción en consecuencia.
Manejo de errores Con cftry y cfcatch
Usted puede usar de ColdFusion cftry etiqueta junto con el cfcatch etiqueta para "atrapar" el error antes de que el usuario ve, y mostrar un mensaje más amigable para el usuario.
¿Cómo funciona esto es, una vez que identificar alto código de riesgo, usted nido que código dentro de los <cftry> </ cftry> etiquetas.Entonces, justo debajo del código de alto riesgo (pero antes del cierre cftry etiqueta, insertar <cfcatch> </ cfcatch> etiquetas. Entre estos cfcatch etiquetas, se especifica lo que debe llevarse a cabo si hay un error.
Ejemplo
En este ejemplo, estamos tratando de llevar a cabo una consulta en una base de datos, a continuación, presentar los resultados. Por el bien de este ejemplo, la base de datos pasa a residir en otro servidor, pero hay un problema con la red y por lo tanto el servidor de base de datos no está disponible temporalmente.
En este caso, hemos cogido el error y presentó un mensaje al usuario. Si no hubiéramos hecho esto, habríamos visto el mensaje de error de ColdFusion estándar.
<P> Cabecera, otra etc contenido va aquí </ p>
<Cftry>
<cfquery datasource = "SomeUnavailableDsn" name = "getUsers">
seleccione FirstName de individuo
</ cfquery >
< cfoutput query = " getUsers " > #FirstName# < br /> </ cfoutput >
< cfcatch type = " any " >
< p > < strong > Apologies, Se ha producido un error.
Por favor, inténtelo de nuevo más tarde. <Fuerte> <p> </ cfcatch> </ cftry>
<P> Pie de página, etc otro contenido va aquí </ p>
El código anterior se traduce en el mensaje de error.
Header, otra etc contenido va aquí
Disculpas, se ha producido un error. Por favor, inténtelo de nuevo más tarde.
Pie de página, etc otro contenido va aquí
Tipos de excepción
Usted puede haber notado que en el ejemplo anterior, el cfcatch etiqueta contiene un tipo de atributo. Este atributo permite especificar qué tipos de excepción debe ser capturado por esta etiqueta cfcatch. Esto puede ser útil, ya que, es posible que desee para mostrar un mensaje de error diferente dependiendo del tipo de error que se produjo. La siguiente tabla muestra los diferentes tipos de excepciones:
Excepción Nombre | Descripción |
---|---|
Solicitud | Estos errores pueden ocurrir si se llama a un componente que no existen o si hay un problema con el acceso a la misma. |
Base de datos | Estos son errores que se producen a partir de una llamada de base de datos. |
Seguridad | Errores relacionados con Sandbox Seguridad. |
Objeto | Los errores resultantes de una llamada a un objeto, como COM, CORBA, o los objetos Java. |
MissingInclude | Los errores resultantes de una llamada a un faltante incluyen archivo o etiqueta personalizada (esto es llamado desde uncfinclude o cfmodule etiqueta. |
Modelo | Los errores resultantes de una llamada a una plantilla que falta. Similar al error MissingInclude. |
Expresión | Los errores resultantes de una expresión no válida. Esto incluye los errores resultantes de intentar utilizar una variable que no existe. |
Bloquear | Los errores resultantes de la cflock etiqueta. O bien el bloqueo de tiempo de espera, o no se ha podido crear. Nota: Para recibir este error, el cflock etiqueta debe tener ThrowOnTimeout = "yes". |
Motor de búsqueda | Los errores resultantes de los cfsearch, cfindex o cfcollection etiquetas. |
Alguna | Utilizando este valor atrapa todos los errores anteriores. |
Manejo de múltiples tipos de error
Para manejar más de un tipo de error, sólo tiene que utilizar una diferente cfcatch para cada tipo que desea manejar.
<Cftry>
... Código de alto riesgo va aquí ...
<Cfcatch tipo = "Base de datos">
Se ha producido un error de base de datos. Por favor, inténtelo de nuevo más tarde.
</ Cfcatch>
<cfcatch tipo = "Expresión">
Se ha producido un error de expresión. Por favor, inténtelo de nuevo más tarde.
</ Cfcatch>
<cfcatch tipo = "MissingInclude">
Un archivo de inclusión ha desaparecido. Por favor, inténtelo de nuevo más tarde.
</ Cfcatch>
</ cftry>
El cferror Tag
Además de utilizar cfcatch y cftry, puede utilizar el cferror etiqueta para la captura de errores.
La etiqueta cferror le permite especificar un archivo de plantilla genérica que se encargará de todos los errores que se producen. Por lo general, usted pondría esta etiqueta en su archivo Application.cfm. De esa manera, que se encargará automáticamente cualquier error que se produce a través de su aplicación.
El siguiente ejemplo asume una plantilla llamada errors.cfm ya se ha creado.
<Cferror tipo = "excepción" plantilla = "errors.cfm" excepción = "cualquier">
Lo bueno de esto es que, usted es capaz de mostrar una página de error personalizada para errores que no son manejados por una cftry / cfcatch (no es realista para envolver toda su solicitud dentro de un cftry). La desventaja es que podría ser un poco más difícil de diagnosticar cualquier problema. Es por eso que usted debe seguir utilizando cftry / cfcatch para bloques de código que crees que son vulnerables a un error que ocurre, pero también tienen la cferror como una copia de seguridad para otros errores.
El controlador de errores en todo el sitio
Se puede especificar un controlador de errores en todo el sitio por si los métodos anteriores no cogen el error. El gestor de errores de todo el sitio se especifica a través del administrador de ColdFusion (en Configuración del servidor> Ajustes).
El controlador Plantilla Missing
El Administrador ColdFusion le permite especificar un manejador de plantilla que falta. Esta opción se encuentra en la misma pantalla que el controlador de errores de todo el sitio (arriba). El manejador de la plantilla que falta es una plantilla genérica que puede utilizar en caso de que la solicitud no puede encontrar una plantilla.
Archivos de registro
Si usted se da cuenta de que ocurrió un error en su solicitud, puede comprobar los archivos de registro de ColdFusion para averiguar los detalles del error. Puede ver los archivos de registro de ColdFusion a través del administrador de ColdFusion (bajo "Depuración y tala> Archivos de registro"), o navegando a la carpeta de archivos de registro. Esto es por lo general bajo cf_root \ logs (por ejemplo C: \ CFusionMX \ logs).
Es una buena idea revisar los archivos de registro de ColdFusion de vez en cuando por si hay algún error que van desapercibidos (o al menos, no declarada!).
Alertas de correo electrónico
Es una buena idea configurar alertas de correo electrónico que notifican al equipo de soporte técnico siempre que se produce un error con su solicitud. De lo contrario, nunca se puede saber que hay un problema hasta que finalmente uno de sus usuarios decide quejarse!
0 comentarios :
Publicar un comentario