Unntakshåndtering i JSP
⚡ Smart oppsummering
Unntakshåndtering i JSP håndterer feil som oppstår under kodekjøring, på samme måte som Java try-catch-blokker. Unntak faller inn i tre typer: kontrollerte, kjøretids- og feilkoder. JSP-sider bruker attributtene errorPage og isErrorPage for å omdirigere og vise unntak.
Hva er unntak i JSP?
unntak i JSP oppstår når det er en feil i koden enten av utvikleren eller intern feil fra systemet. Unntakshåndtering i JSP er den samme som i Java hvor vi administrerer unntak ved hjelp av Try Catch-blokker. I motsetning til Java, det er unntak i JSP også når det ikke er noen feil i koden.
Typer unntak i JSP
Unntak i JSP er av tre typer:
- Merket av for unntak
- Runtime Unntak
- Feil unntak
Avmerket unntak
Det er normalt en brukerfeil eller problemer som ikke blir sett av utvikleren, kalles sjekkede unntak. Noen sjekkede unntakseksempler er:
- FileNotFoundException: Dette er et avkrysset unntak (der den prøver å finne en fil når filen ikke finnes på disken).
- IO-unntak: Dette er også sjekket unntak hvis det er et unntak som oppstod under lesing eller skriving av en fil, så heves IO-unntaket.
- SQLException: Dette er også et avkrysset unntak når filen er koblet til SQL database, og det er et problem med tilkoblingen til SQL-databasen, så oppstår SQLException
Kjøretidsunntak
Unntak fra kjøretid er det som kunne ha unngått av programmereren. De blir ignorert på tidspunktet for kompilering. Noen Runtime-unntakseksempler er:
- ArrayIndexOutOfBoundsException: Dette er et kjøretidsunntak når matrisestørrelsen overskrider elementer.
- Aritmetisk unntak: Dette er også et kjøretidsunntak når det er noen matematiske operasjoner, som ikke er tillatt under normale forhold, for eksempel å dele et tall med 0 vil gi et unntak.
- NullPointer-unntak: Dette er også et kjøretidsunntak som oppstår når en variabel eller et objekt er null når vi prøver å få tilgang til det samme. Dette er et veldig vanlig unntak.
feil:
Problemet oppstår på grunn av kontrollen til brukeren eller programmereren. Hvis stabelen renner over, kan det oppstå feil. Noen eksempler på feilen er oppført nedenfor:
- Feil: Denne feilen er en underklasse av throwable som indikerer alvorlige problemer som en applikasjon ikke kan fange.
- Instantiasjonsfeil: Denne feilen oppstår når vi prøver å instansiere et objekt, og det ikke klarer det.
- Intern feil: Denne feilen oppstår når det har oppstått en feil fra JVM, dvs Java Virtuell maskin.
Feilunntak
Det er en forekomst av den kastbare klassen, og den brukes på feilsider. Noen metoder for kastbar klasse er:
- Offentlig streng getMessage() – returnerer meldingen om unntaket.
- Offentlig kastbar getCause() – returnerer årsak til unntaket
- Offentlig printStackTrace() – returnerer stakkentrace av unntaket.
Hvordan håndtere unntak i JSP
Her er et eksempel på hvordan du håndterer unntak i JSP:
Exception_example.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_feil.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>
Forklaring av koden:
Exception_example.jsp
Code Linje 1: Her setter vi feilsiden til guru_error.jsp som vil bli brukt når feilen blir omdirigert.
Code Linje 15: vi tar en variabel num og setter den til 10 og sjekker en betingelse hvis num er 10 for deretter å kaste et Runtime Exception med meldingen som Error Condition.
Guru_feil.jsp
Code Linje 1: Her setter vi isErrorPage-attributtet til true.
Code Linje 12: Unntaket har blitt generert i exception_example.jsp ved hjelp av throw-objektet, og unntaket vil bli vist her, da IsErrorPage-attributtet er merket som sant. Ved å bruke exception-objektet (dette er et objekt som tillater at unntaksdataene blir tilgjengelige for JSP-en) prøver vi å skrive ut stacken.trace av feilen som oppsto i exception_example.jsp.
Når du kjører koden ovenfor får du følgende utgang:
Utgang:
Unntaket som ble kastet fra exception_example.jsp ved hjelp av throw-objektet til runtime exception er blitt reist, og vi får koden ovenfor. Guru_error.jsp kalles også fra hvilket Guru Det har oppstått et unntak fra denne filen.


