Errori ed eccezioni nelle Web Application Java
Viene spiegato come si possono gestire in maniera abbastanza semplice errori ed eccezioni generate dalle nostre Web Application
Errori
Gli errori tipici che possiamo avere nella nostra Web Application riguardano error code HTTP. Al seguente link trovate una lista esaustiva degli errori che possono essere generati dal protocollo HTTP
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Quelli classici, che succede spesso di vedere nelle applicazioni web sono 404, pagina non trovata, e 500, errore interno del server. Chiaramente non è molto bello mostrare l’errore tipico di Tomcat agli utenti della nostra web application e proprio per questo possiamo mascherare la pagina inserendone una di default per questo tipo di errori.
Per fare ciò basta inserire nel web.xml della nostra applicazione il seguente codice xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<web-app> ... ... <error-page> <error-code>404</error-code> <location>/errori/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/errori/500.jsp</location> </error-page> ... ... </web-app> |
In questo modo quando viene restituito un errore mappato sul web.xml, l’application server controlla se noi lo gestiamo e nel caso invia all’utente la pagina che abbiamo definito.
Eccezioni
Come abbiamo visto per gli errori HTTP, possiamo gestire anche gli errori a runtime della nostra applicazione. Anche in questo caso dobbiamo inserire delle entry nel web.xml per definire il mapping tra eccezione e pagina da visualizzare
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<web-app> ... ... <error-page> <exception>java.sql.Exception</exception> <location>/eccezioni/sql.jsp</location> </error-page> <error-page> <exception>java.lang.NullPointerException</exception> <location>/eccezioni/nullpointer.jsp</location> </error-page> ... ... </web-app> |
Sia in questo caso che nel caso degli errori questi sono rimedi per non mostrare all’utente brutte pagine d’errore. Chiaramente poi dovremo provvedere a loggare tutto quello che succede per capire in seguito dove è l’errore (se c’è qualcosa di sbagliato nella nostra webapp).