Undantagshantering i JSP
โก Smart sammanfattning
Undantagshantering i JSP hanterar fel som uppstรฅr under kodkรถrning, ungefรคr som Java try-catch-block. Undantag delas in i tre typer: kontrollerade, runtime- och error-attribut. JSP-sidor anvรคnder attributen errorPage och isErrorPage fรถr att omdirigera och visa undantag.

Vad รคr undantag i JSP?
undantag i JSP uppstรฅr nรคr det finns ett fel i koden antingen av utvecklaren eller internt fel frรฅn systemet. Undantagshantering i JSP รคr densamma som i Java dรคr vi hanterar undantag med hjรคlp av Try Catch-block. Till skillnad frรฅn Java, det finns undantag i JSP รคven nรคr det inte finns nรฅgot fel i koden.
Typer av undantag i JSP
Undantag i JSP รคr av tre typer:
- Markerat undantag
- Runtime undantag
- Fel undantag
Markerade undantag
Det รคr normalt ett anvรคndarfel eller problem som inte ses av utvecklaren kallas fรถr kontrollerade undantag. Nรฅgra exempel pรฅ markerade undantag รคr:
- FileNotFoundException: Detta รคr ett markerat undantag (dรคr den fรถrsรถker hitta en fil nรคr filen inte hittas pรฅ disken).
- IO Undantag: Detta รคr ocksรฅ markerat undantag om det finns nรฅgot undantag som intrรคffade under lรคsning eller skrivning av en fil sรฅ hรถjs IO-undantaget.
- SQLException: Detta รคr ocksรฅ ett markerat undantag nรคr filen รคr ansluten till SQL databasen, och det finns problem med anslutningen till SQL-databasen sรฅ hรถjs SQLException
Runtime undantag
Runtime undantag รคr de som kunde ha undvikits av programmeraren. De ignoreras vid tidpunkten fรถr sammanstรคllningen. Nรฅgra exempel pรฅ Runtime-undantag รคr:
- ArrayIndexOutOfBoundsException: Detta รคr ett kรถrtidsundantag nรคr arraystorleken รถverstiger element.
- Aritmetikundantag: Detta รคr ocksรฅ ett kรถrtidsundantag nรคr det finns nรฅgra matematiska operationer som inte รคr tillรฅtna under normala fรถrhรฅllanden, till exempel att dividera ett tal med 0 ger ett undantag.
- NullPointer undantag: Detta รคr ocksรฅ ett runtime-undantag som hรถjs nรคr en variabel eller ett objekt รคr null nรคr vi fรถrsรถker komma รฅt densamma. Detta รคr ett mycket vanligt undantag.
fel:
Problemet uppstรฅr pรฅ grund av anvรคndarens eller programmerarens kontroll. Om stacken svรคmmar รถver kan fel uppstรฅ. Nรฅgra exempel pรฅ felet listas nedan:
- Fel: Det hรคr felet รคr en underklass av throwable som indikerar allvarliga problem som ett program inte kan fรฅnga.
- Instantieringsfel: Det hรคr felet uppstรฅr nรคr vi fรถrsรถker instansiera ett objekt och det misslyckas med det.
- Internt fel: Det hรคr felet uppstรฅr nรคr det finns ett fel frรฅn JVM, dvs Java Virtuell maskin.
Undantag fรถr fel
Det รคr en instans av den kastbara klassen och den anvรคnds pรฅ felsidor. Nรฅgra metoder fรถr kastbar klass รคr:
- Public String getMessage() โ returnerar meddelandet om undantaget.
- Offentlig kastbar getCause() โ returnerar orsaken till undantaget
- Offentlig printStackTrace() โ returnerar stackentrace av undantaget.
Hur man hanterar undantag i JSP
Hรคr รคr ett exempel pรฅ hur man hanterar undantag 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_fel.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>
Fรถrklaring av koden:
Exception_example.jsp
Code Linje 1: Hรคr stรคller vi in โโfelsidan till guru_error.jsp som kommer att anvรคndas nรคr felet kommer att omdirigeras.
Code Linje 15: vi tar en variabel num och stรคller in den till 10 och kontrollerar ett villkor om num รคr 10 fรถr att sedan skicka ett Runtime Exception med meddelandet som Error Condition.
Guru_fel.jsp
Code Linje 1: Hรคr stรคller vi in โโattributet isErrorPage till sant.
Code Linje 12: Undantaget har genererats i exception_example.jsp med hjรคlp av throw-objektet och det undantaget kommer att visas hรคr nรคr attributet IsErrorPage รคr markerat som sant. Med hjรคlp av exception-objektet (detta รคr ett objekt som tillรฅter JSP att komma รฅt undantagsdata) fรถrsรถker vi skriva ut stacken.trace av felet som uppstod i exception_example.jsp.
Nรคr du kรถr ovanstรฅende kod fรฅr du fรถljande utdata:
Produktion:
Undantaget har genererats, vilket utlรถstes frรฅn exception_example.jsp med hjรคlp av throw-objektet fรถr runtime-undantaget, och vi fรฅr koden ovan. Guru_error.jsp anropas ocksรฅ, varifrรฅn Guru Ett undantag har intrรคffat frรฅn den hรคr filen.

