Una delle caratteristiche di Java è quella di poter gestire le eccezioni, cioè tutti quelli eventi che non dovrebbero accadere in una situazione normale e che non sono causati da errori da parte del programmatore. Dato che JSP deriva esplicitamente da Java, e ne conserva le caratteristiche di portabilità e robustezza, questo argomento non poteva essere trascurato.
Errori al momento della compilazione
Questo tipo di errore si verifica al momento della prima richiesta, quando il codice JSP viene tradotto in servlet. Generalmente sono causati da errori di compilazione ed il motore JSP, che effettua la traduzione, si arresta nel momento in cui trova l'errore ed invia al client richiedente una pagina di "Server Error" (o errore 500) con il dettaglio degli errori di compilazione.
Errori al momento della richiesta
Questi altri errori sono quelli su cui ci soffermeremo perché sono causati da errori durante l'esecuzione della pagina e non in fase di compilazione. Si riferiscono all'esecuzione del contenuto della pagina o di qualche altro oggetto contenuto in essa. I programmatori java sono abituati ad intercettare le eccezioni innescate da alcuni tipi di errori, nelle pagine JSP questo non è più necessario perché la gestione dell'errore in caso di eccezioni viene eseguita automaticamente dal servlet generato dalla pagina JSP. Il compito del programmatore si riduce al creare un file .jsp che si occupi di gestire l'errore e che permetta in qualche modo all'utente di tornare senza troppi problemi all'esecuzione dell'applicazione JSP.
Creazione di una pagina di errore
Una pagina di errore può essere vista come una normale pagina JSP in cui si specifica, tramite l'opportuno parametro della direttiva page, che si tratta del codice per gestire l'errore.
Ecco un semplice esempio: PaginaErrore.jsp
<html> <body> <%@ page isErrorPage = "true" %> <div class="message"> Siamo spiacenti, si è verificato un errore durante l'esecuzione:<br /><br /> <%= exception.getMessage()%> </div> </body> </html>
A parte la direttiva page il codice Java è composto da un'unica riga che utilizza l'oggetto exception (implicitamente contenuto in tutte le pagine di errore) richiamando l'oggetto getMessage() che restituisce il messaggio di errore.
Uso delle pagine di errore
Perché nelle nostre pagine JSP venga utilizzata una determinata pagina di errore l'unica cosa da fare è inserire la seguente direttiva:
<%@ page errorPage = "PaginaErrore.jsp" %>
che come è facile capire specifica quale pagina di errore deve essere richiamata in caso di errore in fase di esecuzione.