Come per tutti
i linguaggi di scripting server side (e non solo), anche nella creazione delle JSP abbiamo la
possibilità gestire i comportamenti e gli output che normalmente non dovrebbero avere luogo, le cosiddette
"exceptions", attraverso componenti built-in forniti dal linguaggio stesso.
Nella maggior parte
dei linguaggi, gli errori vengono gestiti attraverso la visualizzazione di una error page recante la notifica dei
malfunzionamenti ed eventuali informazioni che possano portare alla loro soluzione.
Facciamo un breve esempio,
riprendiamo lo script utilizzato per descrivere il ciclo while nel capitolo 9 di questa guida e modifichiamolo
eliminando il primo delimitatore "<%" dal codice ; eseguendo il nuovo codice tramite il nostro Servlet
Engine otterremo certamente una notifica simile a questa:
HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: Unable to compile class for JSP An error occurred at line: 2 in the jsp file: /while2.jsp Generated servlet error: valore cannot be resolved An error occurred at line: 2 in the jsp file: /while2.jsp Generated servlet error: valore cannot be resolved An error occurred at line: 2 in the jsp file: /while2.jsp Generated servlet error: valore cannot be resolved (................) note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs. Apache Tomcat/5.5.9Eliminando il primo delimitatore, abbiamo "corrotto" la parte di codice in cui viene assegnato un valore alla variabile "valore", Tomcat ci invia infatti un messaggio molto chiaro "valore cannot be resolved".
<%@ page errorPage="errore.jsp" %>Per esempio, potremo creare una errorpage "errore.jsp" semplicissima contenente questo codice:
<h1>Errore nell'esecuzione della JSP</h1>Con un po di fantasia la grafica risulterà certamente pił piacevole, ma per ora ci basti osservare l'efficacia del risultato. Inseriamo la pagina appena creata nella root del Servlet Engine e passiamo alla seconda parte del nostro esempio.
<%@ page errorPage="errore.jsp" %> <% int valore = valido/valido; %>A questo punto basterà eseguire il codice appena digitato dopo averlo salvato in un pagina ".jsp" per visualizzare il risultato desiderato.