Gestione delle eccezioni in JSP
โก Riepilogo intelligente
La gestione delle eccezioni in JSP gestisce gli errori che si verificano durante l'esecuzione del codice, in modo simile a Java Blocchi try-catch. Le eccezioni si dividono in tre tipi: controllate, di runtime e di errore. Le pagine JSP utilizzano gli attributi errorPage e isErrorPage per reindirizzare e visualizzare le eccezioni.

Cos'รจ l'eccezione in JSP?
Eccezioni in JSP si verificano quando si verifica un errore nel codice da parte dello sviluppatore o un errore interno del sistema. La gestione delle eccezioni in JSP รจ la stessa di in Java dove gestiamo le eccezioni utilizzando i blocchi Try Catch. A differenza di Java, ci sono eccezioni in JSP anche quando non sono presenti errori nel codice.
Tipi di eccezioni in JSP
Le eccezioni in JSP sono di tre tipi:
- Eccezione controllata
- Eccezione runtime
- Eccezione errore
Eccezioni controllate
Di solito si tratta di un errore dell'utente o di problemi che non vengono visti dallo sviluppatore e sono definiti eccezioni controllate. Ecco alcuni esempi di eccezioni controllate:
- FileNotFoundException: Questa รจ un'eccezione verificata (dove tenta di trovare un file quando il file non viene trovato sul disco).
- Eccezione IO: Anche questa รจ un'eccezione controllata. Se si รจ verificata un'eccezione durante la lettura o la scrittura di un file, viene sollevata l'eccezione IO.
- SQLException: Questa รจ anche un'eccezione verificata quando il file รจ connesso con SQL database e si verifica un problema con la connettivitร del database SQL, viene sollevata SQLException
Eccezioni di runtime
Le eccezioni di runtime sono quelle che il programmatore avrebbe potuto evitare. Vengono ignorate al momento della compilazione. Ecco alcuni esempi di eccezioni di runtime:
- Indice della Matrice Fuori Dai Limiti d'Eccezione: Questa รจ un'eccezione di runtime quando la dimensione dell'array supera il elementi.
- ArithmeticException: Questa รจ anche un'eccezione di runtime quando sono presenti operazioni matematiche che non sono consentite in condizioni normali, ad esempio la divisione di un numero per 0 genererร un'eccezione.
- Eccezione NullPointer: Anche questa รจ un'eccezione di runtime che viene sollevata quando una variabile o un oggetto รจ nullo quando proviamo ad accedere allo stesso. Questa รจ un'eccezione molto comune.
Errori:
Il problema sorge a causa del controllo dell'utente o del programmatore. Se lo stack overflow, puรฒ verificarsi un errore. Di seguito sono elencati alcuni esempi di errore:
- Errore: Questo errore รจ una sottoclasse di Throwable che indica problemi gravi che un'applicazione non รจ in grado di rilevare.
- Errore di istanziazione: Questo errore si verifica quando proviamo a istanziare un oggetto e non riesce a farlo.
- Errore interno: Questo errore si verifica quando si verifica un errore da JVM, ad es Java Macchina virtuale.
Eccezioni di errori
ร un'istanza della classe throwable, ed รจ usata nelle pagine di errore. Alcuni metodi della classe throwable sono:
- Stringa pubblica getMessage() โ restituisce il messaggio dell'eccezione.
- Oggetto pubblico da lanciare getCause() โ restituisce la causa dell'eccezione
- Stampa pubblicaTrace() โ restituisce lo stacktrace dell'eccezione.
Come gestire le eccezioni in JSP
Ecco un esempio di come gestire l'eccezione in JSP:
Esempio_eccezione.jsp
<%@ page errorPage="guru_error.jsp" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Exception Guru JSP1</title> </head> <body> <% int num = 10; if (num == 10) { throw new RuntimeException("Error condition!!!"); } %> </body> </html>
Guru_error.jsp
<%@ page isErrorPage="true" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Exception Page</title> </head> <body> <p>Guru Exception has occurred</p> <% exception.printStackTrace(response.getWriter()); %> </body> </html>
Spiegazione del codice:
Esempio_eccezione.jsp
Code Linea 1: Qui stiamo impostando la pagina di errore su guru_error.jsp che verrร utilizzata quando l'errore verrร reindirizzato.
Code Linea 15: stiamo prendendo una variabile num e la impostiamo su 10 e controlliamo una condizione se num รจ 10, quindi lanciamo un'eccezione di runtime con il messaggio come condizione di errore.
Guru_error.jsp
Code Linea 1: Qui impostiamo l'attributo isErrorPage su true.
Code Linea 12: L'eccezione รจ stata sollevata in exception_example.jsp utilizzando l'oggetto throw e tale eccezione verrร mostrata qui poichรฉ l'attributo IsErrorPage รจ impostato su true. Utilizzando l'oggetto exception (questo รจ un oggetto che consente l'accesso ai dati dell'eccezione da parte della JSP) stiamo cercando di stampare lo stacktrace dell'errore che si รจ verificato in exception_example.jsp.
Quando esegui il codice sopra ottieni il seguente output:
Produzione:
ร stata sollevata un'eccezione che รจ stata lanciata da exception_example.jsp utilizzando l'oggetto throw dell'eccezione di runtime e otteniamo il codice sopra. Anche guru_error.jsp viene chiamato da cui Guru Si รจ verificata un'eccezione durante la compilazione di questo file.

