Editor  »  Guide  »  Guida Coldfusion Mx 

Personalizzare i messaggi di errore



Il tag <cferror>. consente di modificare l'aspetto e il contenuto della pagina di errore ColdFusion. Questo è utile da tre punti di vista: 1) possiamo scegliere di non rendere disponibili ai navigatori del sito le informazioni sulla nostra applicazione che inevitabilmente vengono mostrate nel messaggio di errore; 2) possiamo dare un'aspetto grafico all'errore allineato a quello generale del sito; 3) possiamo fare in modo che ci arrivi una mail ogni volta che si verifica un problema.

<cferror> gestisce i quattro tipi di errore che sono restituiti da una pagina CFML: "Request", "Validation", "Monitor" o "Exception". Non è nello scopo di questo corso approfondire il significato di questi tipi di errore. Basti sapere che l'errore di tipo "Exception" è il più diffuso, poiché include errori relativi al database, di scrittura del codice, eccetera; al tipo "Request" possiamo generalmente includere tutti gli altri errori a livello server.

E' importante sapere che ci sono errori "Exception" e "Request" perché, quando creiamo una pagina di errore personalizzata, nel primo caso possiamo utilizzare tag CFML per gestire l'errore, nel secondo no - poiché gli errori di tipo Request sono generalmente i più gravi e per evitare complicazioni lato server ColdFusion si rifiuta di elaborare qualsiasi tag CFML, escluso il tag <cfoutput>..

Il tag <cferror> distingue - tramite l'attributo "type" - il tipo di errore catturato, e a seconda di esso possiamo decidere di mostrare un file al posto del messaggio di errore. Poiché ha senso personalizzare i messaggi di errore all'interno di tutto il nostro sito, è opportuno inserire il tag <cferror> nel file Application.cfm

1. Aggiungi all'inizio del file Application.cfm i due tag <cferror>:

<!--- Personalizza i messaggi di errore di ColdFusion --->
<cferror type="exception" template="errore_exception.cfm">
<cferror type="request" template="errore_request.cfm">

<cfapplication name="SitoDiscoteca" sessionManagement="Yes">

<!--- Visualizza l'intestazione del sito --->
<cfinclude template="header.cfm">
<cfset application.DSN = "discoteca">

In questo modo diciamo a ColdFusion di mostrare la pagina (o template) "errore_exception.cfm" nel caso si verifichi un errore di tipo "exception", e di mostrare la pagina "errore_request.cfm" nel caso di un errore di tipo "request".

2. Personalizza l'errore di tipo "request" salvando un file errore_request.cfm con il seguente contenuto:

<!--- errore_request.cfm: mostra un messaggio per error di tipo Request --->

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN">
<html>
<head>
<title>Errore!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>

<table width="100%" border="0" cellpadding="0" cellspacing="0" class="intestazione">
     <tr>
          <td>Ops, errore inaspettato!</td>
     </tr>
</table>

<p>Si è verificato un errore nella visualizzazione della pagina.</p>

</body>
</html>

Quando si verifica un errore, ColdFusion non include i due file Application.cfm e OnRequestEnd.cfm. Per questo motivo abbiamo dovuto creare una pagina HTML completa di intestazione e chisura dei tag <body> e <html>.

3. Analogamente, salva nel file errore_exception.cfm il seguente codice:

<!--- errore_exception.cfm: mostra un messaggio per error di tipo Exception --->

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN">
<html>
<head>
<title>Errore!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>

<table width="100%" border="0" cellpadding="0" cellspacing="0" class="intestazione">
     <tr>
          <td>Ops, errore inaspettato!</td>
     </tr>
</table>

<p>Si è verificato un errore nella visualizzazione della pagina.</p>

</body>
</html>

Se nelle pagine di errore di tipo Request non potevamo utilizzare tag CFML, nella pagina errore_exception.cfm possiamo: inseriamo ad esempio un tag <cfmail> che invii un messaggio al webmaster insieme ad alcune informazioni sull'errore.

<cferror> rende disponibili, a questo scopo, delle variabili con scope "Error" che contengono informazioni utili.

4. Modifica il file errore_exception.cfm aggiungendo il tag <cfmail>:

<!--- errore_exception.cfm: mostra un messaggio per error di tipo Exception --->

<!--- Invia una mail al webmaster con i dettagli dell'errore --->

<cfmail from="giampaolo@bellavite.com" to="giampaolo@bellavite.com" subject="Errore sul sito discoteca">
Pagina che ha generato l'errore: #error.template#
Data dell'errore: #error.DateTime#
Browser del visitatore: #error.Browser#
Variabili (eventualmente) inviate via URL: #error.QueryString#
Pagina da cui (eventualmente) proveniva: #error.HTTPReferer#
</cfmail>

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN">
<html>
<head>
<title>Errore!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>

<table width="100%" border="0" cellpadding="0" cellspacing="0" class="intestazione">
     <tr>
          <td>Ops, errore inaspettato!</td>
     </tr>
</table>

<p>Si è verificato un errore nella visualizzazione della pagina.
Il webmaster è già stato avvisato del problema.</p>

</body>
</html>

E' chiaro, così, l'utilizzo e il significato delle variabili con scope error.

Prova ad aprire la pagina "http://localhost:8500/discoteca/dettaglio.cfm" per creare un errore di tipo "Exception" e visualizzare la pagina di errore. Il tag <cfmail> in essa contenuto invierà la mail: assicurati quindi di aver inserito nel campo to di "cfmail" il tuo indirizzo di posta elettronica. La pagina non visualizzerà più il messaggio di errore come prima, ma il template errore_exception.cfm. Le informazioni di debug in fondo alla pagina  (che quando il sito è online è sicuramente meglio disattivare) riportano comunque l'errore generato.

Per scaricare i file del sito clicca qui.

Ultimi articoli Editor

Adobe Edge, la prima animazione HTML5

Come creare una animazione HTML5 con Adobe Edge, esempio completo

Adobe Edge, l'interfaccia

Esaminiamo pannelli e menu del tool gratuito di Adobe per la...

Trasformazioni XSLT in Dreamweaver 8

Primo sguardo agli strumenti XML: trasformare un feed RSS

Layout senza tabelle con Dreamweaver 8

Esaminiamo gli strumenti CSS avanzati del software di Adobe/Macromedia

Il nuovo Dreamweaver 8

Panoramica delle principali novità dell'ultima release del popolare...

Altri articoli

Guide Editor

Guida WebMatrix

Entrare nel mondo dello sviluppo di applicazioni Web con Webmatrix,...

Guida Notepad++

Un editor testuale che funziona perfettamente anche come editor HTML...

Guida Aptana

Creare siti Web o applicazioni con Aptana, l'editor open source,...

Altre guide

Newsletter @Daily HTML.it

Ogni mattina, dal lunedì al venerdì, le novità pubblicate su tutti i siti tecnici del network HTML.it: articoli, guide, notizie dal Web, blog e molto altro.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti